#!/bin/bash
set -euo pipefail

# Get list of staged files (excluding deleted files)
staged_files=$(git diff --cached --name-only --diff-filter=d)

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

# 1) Remove trailing whitespace from otherwise-blank lines in all staged files
echo "Cleaning whitespace-only lines..."
echo "$staged_files" | while IFS= read -r file; do
    if [ -f "$file" ]; then
        sed -i 's/^[[:space:]]\+$//' "$file"
        git add "$file"
    fi
done

# 2) Run ruff format on staged .py files
py_files=$(echo "$staged_files" | grep '\.py$' || true)

if [ -n "$py_files" ]; then
    if ! command -v ruff &>/dev/null; then
        echo "Error: ruff is not installed. Please install it first."
        exit 1
    fi

    echo "Running ruff format on Python files..."
    echo "$py_files" | while IFS= read -r file; do
        if [ -f "$file" ]; then
            ruff format "$file"
            git add "$file"
        fi
    done
fi

exit 0
