| 123456789101112131415161718192021222324252627282930 |
- #!/bin/sh
- # Pre-commit hook: auto-formats staged files and ensures tests pass before committing
- echo "Running pre-commit checks..."
- # 1. Auto-format staged files
- STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.(ts|tsx|js|jsx|json|md)$')
- if [ -n "$STAGED_FILES" ]; then
- echo "Auto-formatting..."
- echo "$STAGED_FILES" | xargs deno fmt
- if [ $? -ne 0 ]; then
- echo ""
- echo "Auto-format failed. Fix the issues manually and try again."
- exit 1
- fi
- echo "$STAGED_FILES" | xargs git add
- fi
- # 2. Run all tests
- echo "Running tests..."
- deno task test
- if [ $? -ne 0 ]; then
- echo ""
- echo "Tests failed. Fix the failing tests before committing."
- exit 1
- fi
- echo "All checks passed."
|