11#!/usr/bin/env sh
2- # Pre-commit hook to run Snyk and Talisman scans, completing both before deciding to commit
2+ # Pre-commit hook to run lint, Snyk and Talisman scans, completing all before deciding to commit
33
44# Function to check if a command exists
55command_exists() {
66 command -v "$1" >/dev/null 2>&1
77}
88
9+ # Allow bypassing the hook with an environment variable
10+ if [ "$SKIP_HOOK" = "1" ]; then
11+ echo "Skipping lint, Snyk and Talisman scans (SKIP_HOOK=1)."
12+ exit 0
13+ fi
14+
15+ # Run ESLint check first
16+ echo "Running ESLint check..."
17+ npm run lint
18+ lint_exit_code=$?
19+
20+ if [ $lint_exit_code -ne 0 ]; then
21+ echo "ESLint check failed. Please fix the linting issues and try again."
22+ echo "You can run 'npm run format' to auto-fix most issues."
23+ exit 1
24+ fi
25+
26+ echo "ESLint check passed."
27+
928# Check if Snyk is installed
1029if ! command_exists snyk; then
1130 echo "Error: Snyk is not installed. Please install it and try again."
@@ -18,12 +37,6 @@ if ! command_exists talisman; then
1837 exit 1
1938fi
2039
21- # Allow bypassing the hook with an environment variable
22- if [ "$SKIP_HOOK" = "1" ]; then
23- echo "Skipping Snyk and Talisman scans (SKIP_HOOK=1)."
24- exit 0
25- fi
26-
2740# Initialize variables to track scan results
2841snyk_failed=false
2942talisman_failed=false
@@ -63,7 +76,7 @@ if [ "$snyk_failed" = true ] || [ "$talisman_failed" = true ]; then
6376 exit 1
6477fi
6578
66- # If both scans pass, allow the commit
67- echo "All scans passed. Proceeding with commit.cd ."
79+ # If all checks pass, allow the commit
80+ echo "All checks passed (ESLint, Snyk, Talisman) . Proceeding with commit."
6881rm -f snyk_output.log talisman_output.log
6982exit 0
0 commit comments