mise.toml

 1[tools]
 2go = "latest"
 3"go:golang.org/x/vuln/cmd/govulncheck" = "latest"
 4"go:mvdan.cc/gofumpt" = "latest"
 5golangci-lint = "latest"
 6
 7[tasks.build]
 8run = "go build -o keld ."
 9
10[tasks.install]
11run = "go install ."
12
13[tasks.test]
14run = "go test -v ./..."
15
16[tasks.fmt]
17run = "gofumpt -w ."
18
19[tasks."fmt:check"]
20run = """
21output=$(gofumpt -d .)
22if [ -n "$output" ]; then
23  echo "$output"
24  echo "Files unformatted; execute 'mise run fmt'"
25  exit 1
26fi
27"""
28
29[tasks.fix]
30run = "jj --config 'fix.tools.gofumpt.command=[\"gofumpt\"]' --config 'fix.tools.gofumpt.patterns=[\"glob:**/*.go\"]' fix"
31
32[tasks.lint]
33run = "golangci-lint run"
34
35[tasks.vuln]
36run = "govulncheck ./..."
37
38[tasks.vet]
39run = "go vet ./..."
40
41[tasks."test:quiet"]
42run = """
43output=$(go test ./... 2>&1)
44if [ $? -eq 0 ]; then
45  echo ""
46else
47  echo "$output"
48  exit 1
49fi
50"""
51
52[tasks.sync]
53run = "go generate ./internal/restic/..."
54
55[tasks."sync:check"]
56run = """
57tmpdir=$(mktemp -d)
58trap 'rm -rf "$tmpdir"' EXIT
59cp internal/restic/commands_gen.go "$tmpdir/before.go" 2>/dev/null || true
60go generate ./internal/restic/...
61if ! diff -q internal/restic/commands_gen.go "$tmpdir/before.go" >/dev/null 2>&1; then
62  diff -u "$tmpdir/before.go" internal/restic/commands_gen.go || true
63  echo "restic commands out of sync; run 'mise run sync'"
64  exit 1
65fi
66"""
67
68[tasks.check]
69depends = ["fmt", "vet", "lint", "vuln", "build", "test:quiet"]