#!/bin/bash

# Script para ejecutar clang-tidy en múltiples directorios
# Uso: ./run_clang-tidy.sh

# Lista de rutas donde ejecutar clang-tidy
PATHS=(
    "/home/sergio/gitea/coffee_crisis_arcade_edition/source"
    "/home/sergio/gitea/coffee_crisis_arcade_edition/source/rendering"
    "/home/sergio/gitea/coffee_crisis_arcade_edition/source/rendering/opengl"
    "/home/sergio/gitea/coffee_crisis_arcade_edition/source/sections"
    "/home/sergio/gitea/coffee_crisis_arcade_edition/source/ui"
)

# Ruta del directorio build (relativa desde donde se ejecuta el script)
BUILD_DIR="/home/sergio/gitea/coffee_crisis_arcade_edition/build/"

# Función para procesar un directorio
process_directory() {
    local dir="$1"
    
    echo "=== Procesando directorio: $dir ==="
    
    # Verificar que el directorio existe
    if [[ ! -d "$dir" ]]; then
        echo "Error: El directorio $dir no existe"
        return 1
    fi
    
    # Cambiar al directorio y ejecutar find con -maxdepth 1 para un solo nivel
    cd "$dir" || return 1
    
    # Buscar archivos .cpp, .h, .hpp solo en el nivel actual (no subdirectorios)
    find . -maxdepth 1 \( -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) | \
    xargs -P4 -I{} bash -c 'echo "Procesando: {}"; clang-tidy {} -p '"$BUILD_DIR"' --fix'
    
    echo "=== Completado: $dir ==="
    echo
}

# Procesar cada directorio en la lista
for path in "${PATHS[@]}"; do
    process_directory "$path"
done

echo "¡Proceso completado para todos los directorios!"
