Files
orni_attack/tools/hooks/install.sh
Sergio Valor 1804c8a171 feat(tools): afegit pre-commit hook versionat (clang-format + clang-tidy)
Sistema de git hooks per verificar qualitat de codi automàticament:

Hooks implementats:
- pre-commit: Executa clang-format + clang-tidy en arxius modificats
  - 🎨 clang-format: Formata automàticament el codi
  - 🔍 clang-tidy: Verifica errors i bloqueja commit si n'hi ha

Característiques:
-  Només revisa arxius modificats (ràpid)
-  Auto-formata amb clang-format i afegeix canvis al commit
-  Bloqueja commits amb errors de clang-tidy
-  Exclou directoris audio/ i legacy/ automàticament
-  Rutes dinàmiques (funciona en qualsevol màquina)

Instal·lació:
  ./tools/hooks/install.sh

O manual:
  cp tools/hooks/pre-commit .git/hooks/
  chmod +x .git/hooks/pre-commit

Documentació completa: tools/hooks/README.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 22:08:44 +01:00

62 lines
2.3 KiB
Bash
Executable File

#!/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 <archivos>"
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