forked from jaildesigner-jailgames/jaildoctors_dilemma
109 lines
3.7 KiB
Bash
Executable File
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."
|