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>
This commit is contained in:
61
tools/hooks/install.sh
Executable file
61
tools/hooks/install.sh
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user