check / check (push) Canceled after 0s
Every vendored file, REPO_POLICIES.md and every model script is the copy at sneak/prompts c55a0cb, with this repository's own entries kept after the canonical content. Lint and test are phases of the Dockerfile that write no image, built uncached. make test runs the suite under the race detector as nobody, because root reads the files the tests make unreadable. Dockerfile.lint, script/verify-lint-image-pin and make test-race are gone. Prettier runs on the host, from the node and yarn that script/bootstrap installs. golangci-lint v2.14.0 raises no findings. .claude/settings.json is deleted. Deviation: the set comes from c55a0cb on next rather than dd4027b, as the instructions on sneak/prompts#78 allow. Model: opus-5-5
51 lines
1.4 KiB
Bash
Executable File
51 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
# script/fmt-check: check formatting (read-only).
|
|
set -eu
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
|
|
|
# Must match the pin in script/bootstrap.
|
|
NODE_VERSION="22.17.0"
|
|
|
|
# script/bootstrap installs node and yarn under nvm and leaves neither
|
|
# on the PATH of the shell that called it, so resolve the pinned
|
|
# toolchain here the way bootstrap's own install step does. nvm is a
|
|
# bash script, hence the subshell.
|
|
run_yarn() {
|
|
if command -v yarn >/dev/null 2>&1; then
|
|
exec yarn "$@"
|
|
fi
|
|
if [ ! -s "$HOME/.nvm/nvm.sh" ]; then
|
|
echo "fmt-check: no yarn; run script/bootstrap first" >&2
|
|
exit 1
|
|
fi
|
|
exec bash -c '. "$HOME/.nvm/nvm.sh" && nvm use "$1" >/dev/null &&
|
|
shift && exec yarn "$@"' bash "$NODE_VERSION" "$@"
|
|
}
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
status=0
|
|
|
|
# gofmt and prettier both run every time, so the output names each
|
|
# one that fails. Under set -e a bare assignment would end the
|
|
# script when gofmt fails (a Go file it cannot parse).
|
|
if ! files="$(gofmt -s -l .)"; then
|
|
echo "gofmt: failed; see its errors above" >&2
|
|
status=1
|
|
fi
|
|
if [ -n "$files" ]; then
|
|
echo "gofmt: files not formatted:" >&2
|
|
echo "$files" >&2
|
|
status=1
|
|
fi
|
|
|
|
# run_yarn ends in exec; the subshell returns here afterwards.
|
|
(run_yarn run prettier --check '**/*.md' --tab-width 4 --prose-wrap always) ||
|
|
status=1
|
|
|
|
exit "$status"
|
|
}
|
|
|
|
main "$@"
|