Files
2026-01-08 22:52:12 +02:00

32 lines
961 B
Bash
Executable File

#!/usr/bin/env bash
set -Eeuo pipefail
# Copyright (c) 2026 Red Authors
# License: MIT
#
# Run Rust formatter before commit. This script is intended to be installed as:
# git config core.hooksPath .githooks
# Then it will run automatically on `git commit`.
REPO_ROOT_DIR=$(cd "$(dirname "$0")"/.. && pwd)
echo "[pre-commit] Checking Rust formatting..."
# First, check formatting to decide whether to block the commit
if python3 "${REPO_ROOT_DIR}/red/scripts/format_rust.py" --check; then
echo "[pre-commit] Formatting check passed."
exit 0
else
status=$?
if [ "$status" -eq 2 ]; then
echo "[pre-commit] Formatter prerequisites missing. Aborting commit."
exit 2
fi
echo "[pre-commit] Code is not properly formatted. Running formatter..."
python3 "${REPO_ROOT_DIR}/red/scripts/format_rust.py"
echo "[pre-commit] Code was reformatted. Review changes and re-run commit."
# Block commit; do not stage files automatically
exit 1
fi