#!/bin/sh # pre-commit hook: runs ruff check on staged Python files before every commit # To bypass: git commit --no-verify # Get list of staged Python files STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep '\.py$') if [ -z "$STAGED_FILES" ]; then exit 0 fi echo "🔍 Running ruff check on staged files..." uv run ruff check $STAGED_FILES exit_code=$? if [ $exit_code -ne 0 ]; then echo "" echo "❌ ruff check failed. Commit aborted." echo " Fix the issues above or run: uv run ruff check --fix" echo " To bypass: git commit --no-verify" exit 1 fi echo "✅ ruff check passed." exit 0