video-iac/scripts/setup-hooks.sh

42 lines
975 B
Bash
Executable File

#!/bin/bash
set -e
HOOK_DIR=".git/hooks"
HOOK_FILE="${HOOK_DIR}/pre-commit"
if [ ! -d ".git" ]; then
echo "Error: .git directory not found. Run this from the repo root."
exit 1
fi
echo "Installing pre-commit hook..."
cat > "${HOOK_FILE}" << 'EOF'
#!/bin/bash
# Auto-update CRDs if monitoring chart changes
CHART_DIR="k8s/monitoring/charts"
CRD_SCRIPT="scripts/update-crds.sh"
CRD_FILE="k8s/crds/all-crds.yaml"
# Check if chart directory has staged changes
if git diff --cached --name-only | grep -q "^${CHART_DIR}"; then
echo "Monitoring chart changed. Updating CRDs..."
if [ -f "${CRD_SCRIPT}" ]; then
./${CRD_SCRIPT}
# Check if CRD file changed
if git diff --name-only "${CRD_FILE}" | grep -q "${CRD_FILE}"; then
echo "CRDs updated. Adding to commit..."
git add "${CRD_FILE}"
fi
else
echo "Warning: ${CRD_SCRIPT} not found. Skipping CRD update."
fi
fi
EOF
chmod +x "${HOOK_FILE}"
echo "Pre-commit hook installed!"