#!/bin/sh # script/fmt-check: check formatting (read-only). Same scope as # script/fmt, but fails instead of writing. set -eu ROOT="$(cd "$(dirname "$0")/.." && pwd -P)" main() { cd "$ROOT" # Where script/bootstrap installs Go when the host has none. PATH="$PATH:$ROOT/.tool/go/bin" # The Go files git lists, which leaves out the sources of that # toolchain in the ignored .tool/go. files="$(git ls-files --cached --others --exclude-standard '*.go')" # shellcheck disable=SC2086 # one argument per file name unformatted="$(gofmt -l $files)" if [ -n "$unformatted" ]; then echo "Files not formatted:" >&2 echo "$unformatted" >&2 exit 1 fi } main "$@"