justfile

 1# SPDX-FileCopyrightText: Amolith <amolith@secluded.site>
 2#
 3# SPDX-License-Identifier: CC0-1.0
 4
 5GOOS := env("GOOS", `go env GOOS`)
 6GOARCH := env("GOARCH", `go env GOARCH`)
 7VERSION := `git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g'`
 8
 9default: fmt lint staticcheck test vuln reuse
10
11fmt:
12    # Formatting all Go source code
13    go install mvdan.cc/gofumpt@latest
14    gofumpt -l -w .
15
16lint:
17    # Linting Go source code
18    golangci-lint run
19
20staticcheck:
21    # Performing static analysis
22    go install honnef.co/go/tools/cmd/staticcheck@latest
23    staticcheck ./...
24
25test:
26    # Running tests
27    go test -v ./...
28
29vuln:
30    # Checking for vulnerabilities
31    go install golang.org/x/vuln/cmd/govulncheck@latest
32    govulncheck ./...
33
34reuse:
35    # Linting licenses and copyright headers
36    reuse lint
37
38build:
39    # Building planning-mcp-server
40    CGO_ENABLED=0 GOOS={{GOOS}} GOARCH={{GOARCH}} go build -o planning-mcp-server -ldflags "-s -w -X main.version={{VERSION}}" ./cmd/planning-mcp-server
41
42install:
43    # Installing planning-mcp-server
44    CGO_ENABLED=0 GOOS={{GOOS}} GOARCH={{GOARCH}} go install -ldflags "-s -w -X main.version={{VERSION}}" ./cmd/planning-mcp-server
45
46run:
47    # Running planning-mcp-server
48    CGO_ENABLED=0 GOOS={{GOOS}} GOARCH={{GOARCH}} go run -ldflags "-s -w -X main.version={{VERSION}}" ./cmd/planning-mcp-server
49
50pack:
51    # Packing planning-mcp-server
52    upx --best -qo planning-mcp-server.min planning-mcp-server
53    mv planning-mcp-server.min planning-mcp-server
54
55clean:
56    # Removing build artifacts
57    rm -rf planning-mcp-server
58
59clean-all:
60    # Removing build artifacts and config.toml
61    rm -rf planning-mcp-server config.toml