#!/usr/bin/env bash # --------------------------------------------------------------------------- # start_persistent_profile.command — Equivalente macOS/Linux de # start_persistent_profile.bat. # Arranca el servidor con el PERFIL PERSISTENTE de Chrome para Playwright # (más estable que la sesión shared). Todos los scripts ghl_browser_*.py usarán # generated/browser/profile en lugar de generated/browser/session.json. # --------------------------------------------------------------------------- set -euo pipefail source "$(dirname "${BASH_SOURCE[0]}")/mp_common.sh" banner "MP Manager - Modo Perfil Persistente Bucéfalo" PY="$(require_venv)" || { hold_window; exit 1; } # --- Pre-vuelo ------------------------------------------------------------- set +e "$PY" runtime_control.py preflight PRE=$? set -e if [ "$PRE" -eq 1 ]; then echo info "No se relanza. Usa restart.command para reiniciar el modo persistente." hold_window exit 1 fi # --- Perfil persistente ---------------------------------------------------- export GHL_BROWSER_PROFILE_DIR="$PROJECT_DIR/generated/browser/profile" info "GHL_BROWSER_PROFILE_DIR=$GHL_BROWSER_PROFILE_DIR" if [ ! -d "$GHL_BROWSER_PROFILE_DIR" ]; then echo warn "El perfil aún no existe. La primera vez tendrás que generar la sesión:" echo " 1. Ve a la pestaña Workflows y dale a \"Renovar sesión Bucéfalo\"." echo " 2. Inicia sesión + MFA en la ventana del navegador." echo " 3. La sesión se persistirá automáticamente en este directorio." echo fi info "Iniciando servidor FastAPI con perfil persistente activo..." mkdir -p generated/runtime generated/logs echo "persistent" > generated/runtime/last_mode LOG="$PROJECT_DIR/generated/logs/server.out" nohup "$PY" "$PROJECT_DIR/main.py" >> "$LOG" 2>&1 & disown || true echo echo "===================================================" echo " Servidor iniciado en modo perfil persistente." echo " Logs: generated/logs/server.out" echo " Para detener: stop.command" echo echo " NOTA: en este modo no puedes correr dos scripts de" echo " Playwright al mismo tiempo contra el mismo perfil." echo "===================================================" hold_window