.PHONY: help build run test clean lint lint-fix install release-snapshot release-check # Version derived from git tags; falls back to short SHA; appends -dirty if tree is modified. VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev) LDFLAGS := -X 'forgejo.zerova.net/public/fgj-sid/cmd.version=$(VERSION)' help: @echo "Available commands:" @echo " make build - Build the application (version: $(VERSION))" @echo " make install - Install the binary to /usr/bin" @echo " make run - Run the application" @echo " make test - Run tests" @echo " make lint - Run golangci-lint" @echo " make lint-fix - Run golangci-lint with auto-fix" @echo " make clean - Clean build artifacts" @echo " make release-snapshot - Build snapshot release artifacts via goreleaser" @echo " make release-check - Validate .goreleaser.yaml" build: go build -ldflags "$(LDFLAGS)" -o bin/fgj . install: build install -Dm755 bin/fgj /usr/bin/fgj run: go run . test: go test -v -race ./... lint: golangci-lint run ./... lint-fix: golangci-lint run --fix ./... clean: rm -rf bin/ dist/ go clean release-snapshot: goreleaser release --snapshot --clean --skip=publish release-check: goreleaser check