#!/bin/sh
# pre-commit hook: runs ruff check (lint) and ruff format --check on staged Python files
# To bypass: git commit --no-verify

STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep '\.py$')

if [ -z "$STAGED_FILES" ]; then
    exit 0
fi

FAILED=0

echo "🔍 Running ruff check (lint)..."
uv run ruff check $STAGED_FILES
if [ $? -ne 0 ]; then
    echo "   ↳ Fix with: uv run ruff check --fix"
    FAILED=1
fi

echo "🎨 Running ruff format --check..."
uv run ruff format --check $STAGED_FILES
if [ $? -ne 0 ]; then
    echo "   ↳ Fix with: uv run ruff format"
    FAILED=1
fi

if [ $FAILED -ne 0 ]; then
    echo ""
    echo "❌ Pre-commit checks failed. Commit aborted."
    echo "   To bypass: git commit --no-verify"
    exit 1
fi

echo "✅ All checks passed."
exit 0
