# Development convenience targets. This repo is exempt from the standard # policy scaffold (no Dockerfile, CI, or REPO_POLICIES.md); this Makefile # is only a thin wrapper around the Go toolchain, golangci-lint, and # prettier so `make fmt` / `make check` behave the same as in sneak's # other repos. GO_PKGS := ./... MD_FILES := $(shell git ls-files '*.md') PRETTIER := prettier --tab-width 4 --prose-wrap always .PHONY: check fmt fmt-check lint test # Format, lint, and test — the full local pre-commit gate. check: fmt-check lint test # Format Go and Markdown in place. fmt: gofmt -w . $(PRETTIER) --write $(MD_FILES) # Fail if any Go or Markdown file is not formatted. fmt-check: @unformatted="$$(gofmt -l .)"; \ if [ -n "$$unformatted" ]; then \ echo "gofmt needed on:"; echo "$$unformatted"; exit 1; \ fi $(PRETTIER) --check $(MD_FILES) # Run the house linter (config in .golangci.yml). lint: golangci-lint run $(GO_PKGS) # Run the test suite. test: go test $(GO_PKGS)