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