#!/usr/bin/env bash # Installiert die Git-Hooks aus scripts/git-hooks/ in die lokale Repo-Konfig. # # Nutzung: ./scripts/install-hooks.sh # # Idempotent: Bereits installierte Hooks werden nur ueberschrieben wenn # sie aus scripts/git-hooks/ kommen (Marker-Check), nicht user-eigene. set -euo pipefail REPO_ROOT="$(git rev-parse --show-toplevel)" SRC_DIR="$REPO_ROOT/scripts/git-hooks" DST_DIR="$REPO_ROOT/.git/hooks" if [ ! -d "$SRC_DIR" ]; then echo "FEHLER: $SRC_DIR nicht gefunden" >&2 exit 1 fi mkdir -p "$DST_DIR" count=0 for hook in "$SRC_DIR"/*; do [ -f "$hook" ] || continue name="$(basename "$hook")" target="$DST_DIR/$name" # Wenn Ziel existiert und kein AegisSight-Marker drin: ueberspringen if [ -f "$target" ] && ! grep -q "AegisSight-Verwaltung Pre-Commit-Hook\|AegisSight-Verwaltung Hook" "$target" 2>/dev/null; then echo " ! $name uebersprungen (existiert, kein AegisSight-Marker)" continue fi cp "$hook" "$target" chmod +x "$target" echo " + $name installiert" count=$((count + 1)) done echo "" echo "$count Hook(s) installiert nach $DST_DIR"