#!/usr/bin/env bash
# runpod-ltx-resume.sh  —  Reanudar sesión LTX-2.3 FFLF tras Start del Pod
# En RunPod el disco del contenedor se resetea en cada Start; solo persiste /workspace.
# Este script repone cloudflared + deps pip y levanta ComfyUI + túnel.
#
# Uso en la terminal de Jupyter, después de arrancar el Pod:
#   curl -s https://dl.ramsesvii.com/runpod-ltx-resume.sh | bash
set +e
COMFY="/workspace/ComfyUI"
BIN="/workspace/bin"; mkdir -p "$BIN"
log(){ echo -e "\n\033[1;36m>> $*\033[0m"; }

[ -d "$COMFY" ] || { echo "ERROR: no existe $COMFY (¿se montó el Network Volume?)"; exit 1; }

# 1) cloudflared (persistido en /workspace/bin para no rebajarlo siempre)
log "1/4  cloudflared"
if [ ! -x "$BIN/cloudflared" ]; then
  curl -fsSL https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 \
       -o "$BIN/cloudflared" && chmod +x "$BIN/cloudflared"
  echo "  descargado"
else echo "  ya estaba en /workspace/bin"; fi

# 2) deps de ComfyUI core (se resetean con el contenedor; torch ya viene en la imagen base)
log "2/4  Dependencias de ComfyUI (reponer en python del contenedor)"
pip install -q -r "$COMFY/requirements.txt"

# 3) deps de los custom nodes
log "3/4  Dependencias de custom nodes"
for r in "$COMFY"/custom_nodes/*/requirements.txt; do
  [ -f "$r" ] && echo "  -> $(basename "$(dirname "$r")")" && pip install -q -r "$r"
done
pip install -q "huggingface_hub[hf_transfer]" 2>/dev/null

# 4) levantar ComfyUI + túnel en tmux
log "4/4  ComfyUI (8188) + túnel Cloudflare"
tmux kill-session -t comfy 2>/dev/null
tmux new-session -d -s comfy "cd $COMFY && python main.py --listen 0.0.0.0 --port 8188 2>&1 | tee /workspace/comfyui.log"
echo "  esperando a ComfyUI..."
for i in $(seq 1 60); do curl -s -o /dev/null http://127.0.0.1:8188 && { echo "  ComfyUI ARRIBA"; break; }; sleep 3; done

tmux kill-session -t cf 2>/dev/null
: > /workspace/cloudflared.log
tmux new-session -d -s cf "$BIN/cloudflared tunnel --no-autoupdate --url http://localhost:8188 2>&1 | tee /workspace/cloudflared.log"
URL=""
for i in $(seq 1 30); do
  URL=$(grep -oE 'https://[a-z0-9-]+\.trycloudflare\.com' /workspace/cloudflared.log | head -1)
  [ -n "$URL" ] && break; sleep 2
done

echo
echo "=================================================================="
if [ -n "$URL" ]; then echo "  ✅ ComfyUI:  $URL"
else echo "  ⚠️  sin URL todavía -> cat /workspace/cloudflared.log"; fi
echo "  Abrí la URL, cargá el workflow ltx23FFLF_SeedHunter_v16 y a generar."
echo "  Recordá: 'Diseño moderno de nodos' (Nodes 2.0) debe quedar APAGADO."
echo "=================================================================="
echo ">> Pegale la URL a Claude para que monitoree desde el VPS."
