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>
62 lines
2.3 KiB
Bash
Executable File
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
|