codigo0/scripts/fix-asset-names.sh

70 lines
2.6 KiB
Bash
Executable file

#!/bin/bash
# Script para renombrar archivos con espacios en nombres
# Actualiza también las referencias en el código
set -e
echo "🔤 Renombrando archivos con espacios..."
# Función para limpiar nombre (sin caracteres especiales problemáticos)
clean_name() {
echo "$1" | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed 's/[^a-z0-9-._]//g' | sed 's/--*/-/g' | sed 's/^-\|-$//g'
}
# Renombrar archivos en public/assets
find public/assets -type f -name "* *" | while read -r old_path; do
dir=$(dirname "$old_path")
old_name=$(basename "$old_path")
extension="${old_name##*.}"
name_without_ext="${old_name%.*}"
new_name=$(clean_name "$name_without_ext")
new_name="${new_name}.${extension}"
new_path="${dir}/${new_name}"
if [ "$old_path" != "$new_path" ] && [ -f "$old_path" ]; then
echo " 📝 Renombrando: $old_name -> $new_name"
mv "$old_path" "$new_path" 2>/dev/null || {
echo " ⚠️ Error: no se pudo renombrar $old_path"
}
# Actualizar referencias en código
old_relative="/assets/$(echo "$old_path" | sed 's|public||')"
new_relative="/assets/$(echo "$new_path" | sed 's|public||')"
echo " 🔍 Buscando referencias a: $old_relative"
# Actualizar en archivos TypeScript/JavaScript/JSON
find src -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.json" \) -exec sed -i "s|${old_relative}|${new_relative}|g" {} + 2>/dev/null || true
fi
done
# Renombrar archivos SVG con mayúsculas (pero mantener extensión .svg)
find public/assets -type f -name "*.SVG" -o -name "*[A-Z]*.svg" | while read -r old_path; do
dir=$(dirname "$old_path")
old_name=$(basename "$old_path")
# Convertir a minúsculas pero mantener .svg
new_name=$(echo "$old_name" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
new_path="${dir}/${new_name}"
if [ "$old_path" != "$new_path" ] && [ -f "$old_path" ]; then
echo " 📝 Renombrando: $old_name -> $new_name"
mv "$old_path" "$new_path" 2>/dev/null || {
echo " ⚠️ Error: no se pudo renombrar $old_path"
}
# Actualizar referencias
old_relative="/assets/$(echo "$old_path" | sed 's|public||')"
new_relative="/assets/$(echo "$new_path" | sed 's|public||')"
echo " 🔍 Actualizando referencias..."
find src -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.json" \) -exec sed -i "s|${old_relative}|${new_relative}|g" {} + 2>/dev/null || true
fi
done
echo ""
echo "✅ Renombrado completado"
echo "⚠️ Verifica que las referencias se actualizaron correctamente revisando los archivos modificados"