check / check (push) Failing after 2s
The Go format check ran plain gofmt, which accepts code that gofumpt, the formatter script/fmt runs, rewrites; and the two covered different files. Both now go through script/gofumpt, which runs one pinned gofumpt version over every Go file in --write or --check mode, as script/prettier does for Markdown. It replaces script/fmt-check-go; make fmt-check-go and the Docker lint stage call it. go run builds the pinned version, so nothing has to install gofumpt, and the check fails when gofumpt cannot run instead of passing. Generated mfer/mf.pb.go passes: gofumpt holds generated files to gofmt's rules. The check is not redundant: .golangci.yml enables no golangci-lint formatters. Model: opus-5-5
45 lines
1.4 KiB
Bash
Executable File
45 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
# script/gofumpt: run gofumpt over this repo's Go files.
|
|
#
|
|
# Takes exactly one mode argument, --write or --check, and runs the same
|
|
# gofumpt version over the same files in both modes. script/fmt and
|
|
# script/fmt-check both go through here, and so does the Docker lint
|
|
# stage (make fmt-check-go), so what gets formatted and what gets
|
|
# verified cannot drift apart.
|
|
set -eu
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
|
|
|
# gofumpt v0.12.0, 2026-10-04. `go run` fetches and builds exactly this
|
|
# version, so neither a developer machine nor the lint image needs
|
|
# gofumpt installed.
|
|
GOFUMPT="mvdan.cc/gofumpt@v0.12.0"
|
|
|
|
usage() {
|
|
echo "usage: script/gofumpt --write|--check" >&2
|
|
exit 2
|
|
}
|
|
|
|
main() {
|
|
[ "$#" -eq 1 ] || usage
|
|
cd "$ROOT"
|
|
# Every Go file in the repo. gofumpt holds generated files, such as
|
|
# mfer/mf.pb.go, to gofmt's rules only.
|
|
case "$1" in
|
|
--write) go run "$GOFUMPT" -l -w . ;;
|
|
--check)
|
|
# Own line: a failing command inside `[ -n "$(...)" ]` does
|
|
# not trip `set -e`, so a gofumpt that never ran would pass.
|
|
unformatted="$(go run "$GOFUMPT" -l .)"
|
|
if [ -n "$unformatted" ]; then
|
|
echo "gofumpt: files need formatting (run make fmt):" >&2
|
|
echo "$unformatted" >&2
|
|
exit 1
|
|
fi
|
|
;;
|
|
*) usage ;;
|
|
esac
|
|
}
|
|
|
|
main "$@"
|