#!/bin/sh

# this script must be placed in .git/hooks/pre-commit for it to run automatically
# it is put here in the repo so that it can be used by anyone who clones the repo
# it assumes the environment to run `python manage.py tailwind build` is already set up
# and activated

should_run=$(git diff --cached --name-only -z | python tools/is_tracked_by_tailwind.py)

if [ "$should_run" = "yes" ]; then
    echo "Building Tailwind CSS..."
    python manage.py tailwind build
    git add theme/static/css/dist/styles.css
else
    echo "No relevant changes; skipping Tailwind build."
fi

# Check for trailing whitespace in staged files, fail if found

git diff --cached --name-only --diff-filter=ACM | while IFS= read -r file; do
    [ -f "$file" ] || continue

    case "$file" in
        *.py|*.js|*.ts|*.sh|*.md|*.txt|*.html|*.css)
            if grep -qE '[[:space:]]+$' "$file"; then
                echo "Commit aborted due to trailing whitespace."
                echo "Fix it manually or use tools/strip-trailing-whitespace.sh"
                exit 1
            fi
            ;;
    esac
done
