codigo0/scripts/actualizar_rutas_indice.py

74 lines
2.3 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
"""
Script para actualizar las rutas en manual-index.ts
Cambia las rutas de:
manual-tes/TES_Manual_Digital/BLOQUE_X_NAME/archivo.md
A:
/manual/BLOQUE_X_NAME/archivo.md
"""
import re
from pathlib import Path
PROJECT_ROOT = Path(__file__).parent.parent
MANUAL_INDEX_PATH = PROJECT_ROOT / "src/data/manual-index.ts"
def actualizar_rutas():
"""Actualiza las rutas en manual-index.ts"""
if not MANUAL_INDEX_PATH.exists():
print(f"❌ ERROR: No se encuentra {MANUAL_INDEX_PATH}")
return False
contenido = MANUAL_INDEX_PATH.read_text(encoding='utf-8')
contenido_original = contenido
# Patrón para encontrar rutas del formato:
# rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_X_NAME/archivo.md"
patron = r'rutaArchivo:\s*"manual-tes/TES_Manual_Digital/([^"]+)"'
def reemplazar_ruta(match):
ruta_completa = match.group(1) # BLOQUE_X_NAME/archivo.md
# Extraer solo el nombre del bloque (carpeta)
partes = ruta_completa.split('/')
if len(partes) >= 2:
bloque_dir = partes[0] # BLOQUE_X_NAME
archivo = partes[-1] # archivo.md
nueva_ruta = f'/manual/{bloque_dir}/{archivo}'
return f'rutaArchivo: "{nueva_ruta}"'
return match.group(0) # Si no coincide, mantener original
contenido_nuevo = re.sub(patron, reemplazar_ruta, contenido)
# Verificar si hubo cambios
if contenido_nuevo == contenido_original:
print(" No se encontraron rutas para actualizar")
return False
# Contar cambios
cambios = len(re.findall(patron, contenido_original))
print(f"✅ Actualizadas {cambios} rutas")
# Crear backup
backup_path = MANUAL_INDEX_PATH.with_suffix('.ts.backup')
backup_path.write_text(contenido_original, encoding='utf-8')
print(f"📦 Backup guardado en: {backup_path}")
# Guardar cambios
MANUAL_INDEX_PATH.write_text(contenido_nuevo, encoding='utf-8')
print(f"✅ Archivo actualizado: {MANUAL_INDEX_PATH}")
return True
if __name__ == "__main__":
print("=" * 70)
print("🔄 ACTUALIZANDO RUTAS EN MANUAL-INDEX.TS")
print("=" * 70)
if actualizar_rutas():
print("\n✅ Actualización completada exitosamente")
else:
print("\n⚠️ No se realizaron cambios")