1[env]
2CGO_ENABLED = "0"
3
4[tools]
5go = "latest"
6"go:golang.org/x/vuln/cmd/govulncheck" = "latest"
7"go:mvdan.cc/gofumpt" = "latest"
8golangci-lint = "latest"
9
10[tasks.build]
11run = "go build -ldflags \"-X git.secluded.site/sb-mcp/internal/server.Version=$(git describe --tags --always --dirty 2>/dev/null || echo dev)\" ./cmd/sb-mcp/"
12
13[tasks.install]
14run = "go install -ldflags \"-X git.secluded.site/sb-mcp/internal/server.Version=$(git describe --tags --always --dirty 2>/dev/null || echo dev)\" ./cmd/sb-mcp/"
15
16[tasks.test]
17run = "go test -v ./..."
18
19[tasks.fmt]
20run = "gofumpt -w ."
21
22[tasks."fmt:check"]
23run = """
24output=$(gofumpt -d .)
25if [ -n "$output" ]; then
26 echo "$output"
27 echo "Files unformatted; execute 'mise run fmt'"
28 exit 1
29fi
30"""
31
32[tasks.fix]
33run = "jj --config 'fix.tools.gofumpt.command=[\"gofumpt\"]' --config 'fix.tools.gofumpt.patterns=[\"glob:**/*.go\"]' fix"
34
35[tasks.lint]
36run = "golangci-lint run"
37
38[tasks.vuln]
39run = "govulncheck ./..."
40
41[tasks.vet]
42run = "go vet ./..."
43
44[tasks."test:quiet"]
45run = """
46output=$(go test ./... 2>&1)
47if [ $? -eq 0 ]; then
48 echo "✓"
49else
50 echo "$output"
51 exit 1
52fi
53"""
54
55[tasks.check]
56depends = ["fmt", "vet", "lint", "vuln", "build", "test:quiet"]