Files
jaildoctors_dilemma/organizar.sh
2025-10-26 12:31:49 +01:00

109 lines
3.7 KiB
Bash
Executable File

#!/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."