- Add comprehensive workflow documentation (WORKFLOW_GUIDE.md) - Add quick start guide (QUICK_START.md) - Add caching to GitHub Actions workflows for faster CI/CD - Create Makefile with common development tasks - Add pre-commit hook script for local validation - Add VS Code tasks configuration - Add git hooks installation script - Update .gitignore to allow VS Code config files Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
57 lines
1.5 KiB
Bash
Executable File
57 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Install Git hooks for Moko Cassiopeia
|
|
# Copyright (C) 2025 Moko Consulting <hello@mokoconsulting.tech>
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
#
|
|
# FILE INFORMATION
|
|
# DEFGROUP: Moko-Cassiopeia.Scripts
|
|
# INGROUP: Scripts.Git
|
|
# REPO: https://github.com/mokoconsulting-tech/moko-cassiopeia
|
|
# FILE: ./scripts/git/install-hooks.sh
|
|
# VERSION: 01.00.00
|
|
# BRIEF: Install Git hooks for local development
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
|
|
echo "Installing Git hooks..."
|
|
echo ""
|
|
|
|
# Create .git/hooks directory if it doesn't exist
|
|
mkdir -p "${REPO_ROOT}/.git/hooks"
|
|
|
|
# Install pre-commit hook
|
|
PRE_COMMIT_HOOK="${REPO_ROOT}/.git/hooks/pre-commit"
|
|
cat > "${PRE_COMMIT_HOOK}" <<'EOF'
|
|
#!/usr/bin/env bash
|
|
# Pre-commit hook - installed by scripts/git/install-hooks.sh
|
|
|
|
SCRIPT_DIR="$(git rev-parse --show-toplevel)/scripts/git"
|
|
|
|
if [ -f "${SCRIPT_DIR}/pre-commit.sh" ]; then
|
|
exec "${SCRIPT_DIR}/pre-commit.sh" "$@"
|
|
else
|
|
echo "Error: pre-commit.sh not found in ${SCRIPT_DIR}"
|
|
exit 1
|
|
fi
|
|
EOF
|
|
|
|
chmod +x "${PRE_COMMIT_HOOK}"
|
|
|
|
echo "✓ Installed pre-commit hook"
|
|
echo ""
|
|
echo "The pre-commit hook will run automatically before each commit."
|
|
echo ""
|
|
echo "Options:"
|
|
echo " - Skip hook: git commit --no-verify"
|
|
echo " - Quick mode: ./scripts/git/pre-commit.sh --quick"
|
|
echo " - Skip quality checks: ./scripts/git/pre-commit.sh --skip-quality"
|
|
echo ""
|
|
echo "To uninstall hooks:"
|
|
echo " rm .git/hooks/pre-commit"
|
|
echo ""
|
|
echo "Done!"
|