diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a233dbc2..d2351564 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -74,6 +74,12 @@ To set up the project locally: npm run lint ``` +5. **Git Hooks (Optional)**: + We provide a script to set up a git pre-commit hook that runs linting and CSS builds automatically before you commit. + ```bash + ./scripts/setup-pre-commit.sh + ``` + For a full guide, see the [Local Setup section in README.md](./README.md#local-setup). ## Dev Container diff --git a/scripts/setup-pre-commit.sh b/scripts/setup-pre-commit.sh new file mode 100755 index 00000000..93ee06c6 --- /dev/null +++ b/scripts/setup-pre-commit.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +HOOK_FILE=".git/hooks/pre-commit" + +if [ ! -d ".git" ]; then + echo "Error: .git directory not found. This script must be run from the repository root." + exit 1 +fi + +echo "Setting up pre-commit hook at $HOOK_FILE..." + +cat > "$HOOK_FILE" << 'EOF' +#!/bin/sh +# pre-commit hook to run lint and build checks + +echo "Running pre-commit checks..." + +# Run lint +echo "Running lint..." +npm run lint +if [ $? -ne 0 ]; then + echo "Lint failed. Please fix errors before committing." + exit 1 +fi + +# Run CSS build to ensure consistency +echo "Running CSS build..." +npm run build:css +if [ $? -ne 0 ]; then + echo "CSS build failed. Please fix errors before committing." + exit 1 +fi + +echo "Pre-commit checks passed." +EOF + +chmod +x "$HOOK_FILE" +echo "Pre-commit hook installed successfully."