# SPDX-FileCopyrightText: Amolith # # SPDX-License-Identifier: CC0-1.0 GOOS := env("GOOS", `go env GOOS`) GOARCH := env("GOARCH", `go env GOARCH`) VERSION := `git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g'` default: fmt lint staticcheck test vuln reuse fmt: # Formatting all Go source code go install mvdan.cc/gofumpt@latest gofumpt -l -w . lint: # Linting Go source code golangci-lint run staticcheck: # Performing static analysis go install honnef.co/go/tools/cmd/staticcheck@latest staticcheck ./... test: # Running tests go test -v ./... vuln: # Checking for vulnerabilities go install golang.org/x/vuln/cmd/govulncheck@latest govulncheck ./... reuse: # Linting licenses and copyright headers reuse lint docs: # Generating CLI documentation (per-command and LLM reference) go run ./internal/tools/docgen -out ./docs/cli -format markdown go run ./internal/tools/docgen -out ./docs -format markdown -single llm-reference.md -exclude m build: # Building formatted-commit CGO_ENABLED=0 GOOS={{GOOS}} GOARCH={{GOARCH}} go build -o np -ldflags "-s -w -X main.version={{VERSION}}" run *FLAGS: # Running np CGO_ENABLED=0 GOOS={{GOOS}} GOARCH={{GOARCH}} go run -ldflags "-s -w -X main.version={{VERSION}}" . {{FLAGS}} pack: # Packing np upx --best -qo np.min np mv np.min np clean: # Removing build artifacts rm -rf formatted-commit clean-all: # Removing build artifacts and config.toml rm -rf formatted-commit config.toml