#!/usr/local/bin/bash

# Script para generar MD5 de archivos en un directorio (excluyendo vendor)
# Uso: ./md5_check.sh <directorio> [archivo_salida]

if [ $# -lt 1 ]; then
    echo "Uso: $0 <directorio> [archivo_salida]"
    echo "Ejemplo: $0 /path/to/backend md5_list.txt"
    exit 1
fi

DIRECTORIO="$1"
SALIDA="${2:-md5_checksums.txt}"

if [ ! -d "$DIRECTORIO" ]; then
    echo "Error: El directorio '$DIRECTORIO' no existe"
    exit 1
fi

echo "Generando checksums MD5 para: $DIRECTORIO"
echo "Excluyendo: vendor/, .git/"
echo "Guardando en: $SALIDA"
echo ""

# Generar MD5 excluyendo directorios vendor y .git
# Cambiar al directorio para obtener rutas relativas
cd "$DIRECTORIO" || exit 1

find . -type f ! -path "*/vendor/*" ! -path "*/.git/*" -exec md5sum {} \; | \
    sed 's|^\([^ ]*\)  \./|\1  |' | \
    sort -k 2 > "$OLDPWD/$SALIDA"

cd "$OLDPWD" || exit 1

TOTAL=$(wc -l < "$SALIDA")
echo "✓ Completado: $TOTAL archivos procesados"
echo "Archivo generado: $SALIDA"

# Script de comparación (opcional)
# Para comparar dos directorios, ejecuta:
# ./md5_check.sh /directorio1 dir1_md5.txt
# ./md5_check.sh /directorio2 dir2_md5.txt
# diff dir1_md5.txt dir2_md5.txt
