fix .topdirignore

Signed-off-by: ale <ale@manalejandro.com>
Este commit está contenido en:
ale
2025-11-01 17:35:58 +01:00
padre 5e520b42df
commit b12c3ebfa1
Se han modificado 3 ficheros con 70 adiciones y 18 borrados

Ver fichero

@@ -148,8 +148,26 @@ fi
find_cmd=(find . -type f ! -name '.topdir_snapshot' ! -name '.topdirignore')
for pattern in "${EXCLUDE_PATTERNS[@]}"; do
# Normalizar el patrón:
# Si el patrón no contiene /* ni * al final, y es un directorio, añadir /*
# Esto permite que "logs" se convierta en "logs/*" automáticamente
normalized_pattern="$pattern"
# Si el patrón no tiene wildcards ni slash al final
if [[ "$pattern" != *\** && "$pattern" != */ ]]; then
# Si existe como directorio, añadir /* para exclusión recursiva
if [[ -d "./$pattern" ]]; then
normalized_pattern="$pattern/*"
fi
fi
# Remover / final si existe (para que "logs/" -> "logs/*")
if [[ "$normalized_pattern" == */ && "$normalized_pattern" != *\* ]]; then
normalized_pattern="${normalized_pattern}*"
fi
# Convertir pattern a formato find -path
find_cmd+=(! -path "./$pattern")
find_cmd+=(! -path "./$normalized_pattern")
done
# Generar nuevo snapshot: compute hash para cada archivo regular