Files
keyfunc/Makefile
T
clawbot 9d1b9a9f19
check / check (push) Successful in 3m6s
script/bootstrap installs the Dockerfile's Go from go.dev (closes #46)
The Gitea runner has Docker and git but no Go, and the apt path never
ran apt-get update, so on a fresh host every install failed.

Bootstrap now installs Go 1.26.8, the version in the Dockerfile's
golang image, from the release archive at go.dev, checked against a
sha256 in the script, into ~/.local/go whenever the go first on PATH
reports any other version. script/fmt, script/fmt-check,
script/precommit and the Makefile put ~/.local/go/bin first on their
PATH so they use it. The apt path runs apt-get update once, before its
first install.

Model: opus-5-5
2026-10-04 01:40:33 +00:00

51 lines
937 B
Makefile

# Makefile targets are thin shims; the implementations live in script/
# per the scripts-to-rule-them-all pattern. The one exception is build,
# which needs the version stamped into the binary.
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
LDFLAGS := -s -w -X 'sneak.berlin/go/keyfunc/internal/cli.Version=$(VERSION)'
# Where script/bootstrap installs Go; it cannot put it on our PATH.
export PATH := $(HOME)/.local/go/bin:$(PATH)
.PHONY: default bootstrap setup build test lint fmt fmt-check check \
docker cibuild hooks clean
default: check
bootstrap:
@script/bootstrap
setup:
@script/setup
build:
go build -trimpath -ldflags "$(LDFLAGS)" -o keyfunc ./cmd/keyfunc
test:
@script/test
lint:
@script/lint
fmt:
@script/fmt
fmt-check:
@script/fmt-check
check:
@script/check
docker:
@script/docker
cibuild:
@script/cibuild
hooks:
@script/install-precommit
clean:
rm -f keyfunc