Enforcement (check-rules/hooks/shellcheck) per ADOPTING pattern; perf/ SoR from the #685 session (memcensus, pg role-caps SQL, applied sysctl, planned daemon.json); questions-v1 (API token + dockerd window asks). Meat + verification: https://projects.knownelement.com/issues/727#note-3913
26 lines
809 B
Bash
Executable File
26 lines
809 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# pre-commit — fast rule audit (< 1s typical).
|
|
# Hot-path bypass: commits that ONLY touch STATUS.md / WORKING.md skip the
|
|
# audit so frequent status/task commits stay frictionless.
|
|
set -euo pipefail
|
|
|
|
REPO_ROOT="$(git rev-parse --show-toplevel)"
|
|
cd "$REPO_ROOT"
|
|
|
|
CHANGED="$(git diff --cached --name-only)"
|
|
HOT_PATHS="$(printf '%s\n' "$CHANGED" | grep -vE '^(STATUS.md|WORKING.md)$' || true)"
|
|
|
|
if [ -z "$HOT_PATHS" ]; then
|
|
echo "hot-path files only (STATUS/WORKING) — skipping rule audit"
|
|
exit 0
|
|
fi
|
|
|
|
if ! bash scripts/check-rules.sh --fast; then
|
|
echo ""
|
|
echo "pre-commit audit FAILED. Fix the violations above before committing."
|
|
echo "Full audit: bash scripts/check-rules.sh"
|
|
echo "Bypass: git commit --no-verify (emergencies only)"
|
|
exit 1
|
|
fi
|
|
exit 0
|