#!/bin/bash # Script de instalación de git hooks para desarrollo de Orni Attack # Copia los hooks desde tools/hooks/ a .git/hooks/ y los hace ejecutables set -e # Obtener raíz del repositorio REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || echo ".") # Colores para output GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "🔧 Instalando Git Hooks para Orni Attack" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # Verificar que estamos en un repositorio git if [ ! -d "$REPO_ROOT/.git" ]; then echo "❌ Error: No se encontró el directorio .git" echo " Ejecuta este script desde la raíz del repositorio" exit 1 fi # Verificar que existe el directorio de hooks versionados if [ ! -d "$REPO_ROOT/tools/hooks" ]; then echo "❌ Error: No se encontró el directorio tools/hooks/" exit 1 fi # Instalar pre-commit hook if [ -f "$REPO_ROOT/tools/hooks/pre-commit" ]; then echo "📦 Instalando pre-commit hook..." cp "$REPO_ROOT/tools/hooks/pre-commit" "$REPO_ROOT/.git/hooks/pre-commit" chmod +x "$REPO_ROOT/.git/hooks/pre-commit" echo -e " ${GREEN}✅ pre-commit instalado${NC}" else echo -e " ${YELLOW}⚠️ pre-commit no encontrado, saltando...${NC}" fi echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo -e "${GREEN}✅ Instalación completada${NC}" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "📋 Hooks instalados:" echo " • pre-commit: Ejecuta clang-format + clang-tidy en cada commit" echo "" echo "💡 Próximos pasos:" echo " 1. Haz cambios en el código" echo " 2. git add " echo " 3. git commit -m \"mensaje\"" echo " 4. El hook verificará automáticamente tu código" echo "" echo "⚙️ Para desinstalar:" echo " rm .git/hooks/pre-commit" echo "" exit 0