#!/bin/sh
# script/precommit: run by the git pre-commit hook; fails the commit if
# checks fail. Our extension to scripts-to-rule-them-all. Go repo extra:
# `go mod tidy` must not change go.mod/go.sum.
set -eu

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)"

main() {
	cd "$ROOT"
	go mod tidy
	git diff --exit-code -- go.mod go.sum || {
		echo "precommit: go mod tidy changed go.mod/go.sum;" \
			"stage the changes and retry" >&2
		exit 1
	}
	"$SCRIPT_DIR/check"
}

main "$@"
