- pre-commit: guard ruff --fix + git add with git stash --keep-index so partial-staging (git add -p) workflows are not silently broken - pre-commit: use -z / xargs -0 for null-delimited filename handling - install-hooks.sh: update echo messages to reflect auto-fix behaviour Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
32 lines
763 B
Bash
Executable File
32 lines
763 B
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Install git hooks for this repository
|
|
#
|
|
|
|
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
|
|
|
|
if [ -z "$REPO_ROOT" ]; then
|
|
echo "Error: Not in a git repository"
|
|
exit 1
|
|
fi
|
|
|
|
HOOKS_DIR="$REPO_ROOT/.githooks"
|
|
GIT_HOOKS_DIR="$REPO_ROOT/.git/hooks"
|
|
|
|
echo "Installing git hooks..."
|
|
|
|
if [ -f "$HOOKS_DIR/pre-commit" ]; then
|
|
cp "$HOOKS_DIR/pre-commit" "$GIT_HOOKS_DIR/pre-commit"
|
|
chmod +x "$GIT_HOOKS_DIR/pre-commit"
|
|
echo "Installed pre-commit hook"
|
|
else
|
|
echo "pre-commit hook not found in $HOOKS_DIR"
|
|
fi
|
|
|
|
echo ""
|
|
echo "The pre-commit hook will:"
|
|
echo " - Auto-fix ruff lint violations (unused imports, formatting, etc.)"
|
|
echo " - Block commits only on truly unfixable issues"
|
|
echo ""
|
|
echo "To bypass in emergency: git commit --no-verify"
|