Format Go with gofmt, then golines -m 77 (closes #215)
check / check (push) Waiting to run

script/fmt now runs golines -m 77 after gofmt, repeating golines until
it changes nothing, since one pass can leave a line the next splits.
script/fmt-check fails when either would change a file.
script/bootstrap installs golines v0.13.0 with go install, pinned to
its commit, and checks the installed version with go version -m.

The tree is reformatted. The longer lines this makes are fixed by
hand: nolint directives moved onto their own line above the statement,
one string split, and 20 functions over funlen's 80 lines shortened or
split, RunWAF and limitPercentages among them.

Model: opus-5-5
This commit is contained in:
sneak committed 2026-11-11 14:50:46 +00:00
1 parent f9bec5146b
commit a8b24a843b
117 files changed
+9441 -2670

No files matched your search

+26 -2
View File
@@ -1,6 +1,6 @@
#!/bin/sh
# script/fmt: format all files (writes): the Go code with gofmt, the
# Markdown with prettier.
# script/fmt: format all files (writes): the Go code with gofmt and
# then golines -m 77, the Markdown with prettier.
set -eu
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
@@ -24,9 +24,33 @@ run_yarn() {
shift && exec yarn "$@"' bash "$NODE_VERSION" "$@"
}
# The golines that script/bootstrap installed: go install puts it in
# GOBIN, or in GOPATH/bin when GOBIN is unset.
golines_path() {
gobin="$(go env GOBIN)"
golines="${gobin:-$(go env GOPATH)/bin}/golines"
if [ ! -x "$golines" ]; then
echo "fmt: no golines; run script/bootstrap first" >&2
exit 1
fi
echo "$golines"
}
main() {
cd "$ROOT"
golines="$(golines_path)"
gofmt -w cmd internal
# One golines pass can leave a line that the next pass splits
# further, so run it until it would change nothing.
passes=0
while [ -n "$("$golines" -m 77 -l cmd internal)" ]; do
passes=$((passes + 1))
if [ "$passes" -gt 5 ]; then
echo "fmt: golines -m 77 still changes files after 5 passes" >&2
exit 1
fi
"$golines" -m 77 -w cmd internal
done
run_yarn run prettier --write '**/*.md' --tab-width 4 --prose-wrap always
}