#!/bin/bash # ============================================================================== # Script para reorganizar la carpeta 'source' a una nueva estructura en 'source2' # ============================================================================== # # INSTRUCCIONES: # 1. Guarda este archivo como 'organizar.sh' en el directorio padre de 'source'. # 2. Abre una terminal en ese directorio. # 3. Dale permisos de ejecución con: chmod +x organizar.sh # 4. Ejecútalo con: ./organizar.sh # # --- Configuración --- SRC_DIR="source" DEST_DIR="source2" # --- Comprobaciones Previas --- if [ ! -d "$SRC_DIR" ]; then echo "❌ Error: El directorio '$SRC_DIR' no se encuentra." exit 1 fi echo "🚀 Iniciando la reorganización de '$SRC_DIR' a '$DEST_DIR'..." # --- Limpieza y Creación de la Estructura Base --- rm -rf "$DEST_DIR" mkdir -p "$DEST_DIR" echo " - Creado directorio raíz '$DEST_DIR'." # Creando directorios principales mkdir -p "$DEST_DIR/Core/Input" mkdir -p "$DEST_DIR/Core/Rendering" mkdir -p "$DEST_DIR/Core/Resources" mkdir -p "$DEST_DIR/Core/System" mkdir -p "$DEST_DIR/Game/Entities" mkdir -p "$DEST_DIR/Game/Gameplay" mkdir -p "$DEST_DIR/Game/Scenes" mkdir -p "$DEST_DIR/Game/UI" mkdir -p "$DEST_DIR/Utils" echo " - Creada la estructura de carpetas principal." # --- Función para copiar archivos --- copy_file() { local dest_sub_dir="$1" shift for file in "$@"; do if [ -f "$SRC_DIR/$file" ]; then cp "$SRC_DIR/$file" "$DEST_DIR/$dest_sub_dir/" else echo " ⚠️ Advertencia: No se encontró el archivo '$file' en '$SRC_DIR/'." fi done } # --- Copiando Archivos a su Nueva Ubicación --- echo " - Copiando archivos del motor (Core)..." # Core/Input copy_file "Core/Input" "input.h" "input.cpp" "global_inputs.h" "global_inputs.cpp" "mouse.h" "mouse.cpp" # Core/Rendering copy_file "Core/Rendering" "texture.h" "texture.cpp" "surface.h" "surface.cpp" "screen.h" "screen.cpp" "text.h" "text.cpp" "gif.h" "gif.cpp" # Mover carpetas de rendering existentes if [ -d "$SRC_DIR/sprite" ]; then cp -r "$SRC_DIR/sprite/"* "$DEST_DIR/Core/Rendering/"; fi if [ -d "$SRC_DIR/rendering" ]; then cp -r "$SRC_DIR/rendering" "$DEST_DIR/Core/"; fi # Core/Resources copy_file "Core/Resources" "resource.h" "resource.cpp" "asset.h" "asset.cpp" # Core/System copy_file "Core/System" "director.h" "director.cpp" "debug.h" "debug.cpp" echo " - Copiando archivos de lógica de juego (Game)..." # Game/Entities copy_file "Game/Entities" "player.h" "player.cpp" "enemy.h" "enemy.cpp" "item.h" "item.cpp" # Game/Gameplay copy_file "Game/Gameplay" "room.h" "room.cpp" "room_tracker.h" "room_tracker.cpp" "item_tracker.h" "item_tracker.cpp" "stats.h" "stats.cpp" "scoreboard.h" "scoreboard.cpp" "cheevos.h" "cheevos.cpp" "options.h" "options.cpp" # Game/Scenes (tu antigua 'sections') if [ -d "$SRC_DIR/sections" ]; then cp -r "$SRC_DIR/sections/"* "$DEST_DIR/Game/Scenes/" fi # Game/UI (tu antigua 'ui') if [ -d "$SRC_DIR/ui" ]; then cp -r "$SRC_DIR/ui/"* "$DEST_DIR/Game/UI/" fi echo " - Copiando utilidades y ficheros externos..." # Utils copy_file "Utils" "utils.h" "utils.cpp" "defines.h" "global_events.h" "global_events.cpp" # External (copia la carpeta entera) if [ -d "$SRC_DIR/external" ]; then cp -r "$SRC_DIR/external" "$DEST_DIR/" fi # Archivos de la raíz del proyecto copy_file "" "main.cpp" "version.h.in" echo "" echo "✅ ¡Proceso completado!" echo "Tu proyecto ha sido reorganizado en la carpeta '$DEST_DIR'." echo "La carpeta original '$SRC_DIR' no ha sido modificada." echo "🧠 Recuerda: El siguiente paso crucial es actualizar tus '#includes' y tu sistema de compilación (CMake, Makefile, etc.) para que apunten a las nuevas rutas."