#!/bin/bash
set -x  # Activa el modo de depuración para ver cada comando ejecutado

echo "[DEBUG] Iniciando entrypoint.sh"

# Configurar Code-Server
CONFIG_DIR="/root/.local/share/code-server/User"
SETTINGS_FILE="$CONFIG_DIR/settings.json"

echo "[DEBUG] Creando directorio de configuración Code-Server en $CONFIG_DIR"
mkdir -p "$CONFIG_DIR"

echo "[INFO] Configurando Code-Server con tema oscuro y AutoSave desactivado..."
cat > "$SETTINGS_FILE" <<EOF
{
    "workbench.colorTheme": "Visual Studio Dark",
    "files.autoSave": "off"
}
EOF
echo "[DEBUG] Archivo de configuración de Code-Server creado en $SETTINGS_FILE"

# Verificar si el archivo se escribió correctamente
if [ -f "$SETTINGS_FILE" ]; then
    echo "[DEBUG] Verificación: settings.json existe y contiene:"
    cat "$SETTINGS_FILE"
else
    echo "[ERROR] No se pudo crear settings.json"
fi

# Asegurar que Vite use file polling para detectar cambios
echo "[DEBUG] Configurando variables de entorno para Vite..."
export CHOKIDAR_USEPOLLING=true
export WATCHPACK_POLLING=true
echo "[DEBUG] Variables de entorno configuradas"

# Verificar que code-server está instalado
echo "[DEBUG] Verificando instalación de Code-Server..."
which code-server
code-server --version || echo "[ERROR] Code-Server no se encuentra instalado"

# Iniciar Code-Server y React en paralelo
echo "[INFO] Iniciando Code-Server y servidor de React..."
code-server /app --bind-addr 0.0.0.0:8080 --auth none -vvv &

# Verificar que npm está instalado
echo "[DEBUG] Verificando instalación de npm y Node.js..."
node -v
npm -v

# Verificar existencia de frontend antes de ejecutar npm
if [ -d "/app/frontend" ]; then
    echo "[DEBUG] Carpeta /app/frontend encontrada. Iniciando servidor de React..."
    cd /app/frontend
    npm run dev -- --host 0.0.0.0 --port 5173 --force
else
    echo "[ERROR] Carpeta /app/frontend no encontrada. No se puede iniciar React."
fi