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