#!/bin/sh # script/check: run all checks. Our own extension to # scripts-to-rule-them-all. Must not modify any tracked files. Runs the # canonical order: the clean production build, then the lint build that # reports path warnings, then the read-only formatting check. # # The lint - and only the lint - runs inside Docker: it is a build of # Dockerfile.lint, so this script needs a working docker daemon and has # no host fallback to drop back to. Budget for the cold case: the first # lint on a machine with no cached script/bootstrap layer compiles the # pinned Hugo from source, which takes minutes. That cost falls on the # pre-commit hook too, since it runs this script. Every later run reuses # that layer and only the lint step re-executes. set -eu SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)" main() { "$SCRIPT_DIR/test" "$SCRIPT_DIR/lint" "$SCRIPT_DIR/fmt-check" } main "$@"