#!/usr/bin/env bash # --------------------------------------------------------------------------- # setup_mac.command — Inicialización con UN CLICK de MP Manager en macOS/Linux. # # Equivalente "de arranque" que NO existe en Windows (allá se asume Python en el # PATH). En macOS el Python del sistema suele ser 3.9 y está bloqueado para pip # (PEP 668), así que aquí: # 1. Detecta un Python 3.10+ del sistema. # 2. Crea un entorno virtual aislado en .venv (no toca el Python del sistema). # 3. Instala las dependencias de requirements.txt. # 4. Instala el navegador Chromium para Playwright. # 5. Crea el archivo .env a partir de .env.example si no existe. # # Es idempotente: puedes volver a ejecutarlo para actualizar dependencias. # Doble clic en Finder para correrlo. # --------------------------------------------------------------------------- set -euo pipefail source "$(dirname "${BASH_SOURCE[0]}")/mp_common.sh" banner "MP Manager - Configuración inicial (macOS / Linux)" # --- 1. Buscar Python 3.10+ del sistema ----------------------------------- info "Buscando un Python ${PY_MIN_MAJOR}.${PY_MIN_MINOR}+ en el sistema..." SYS_PY="$(find_system_python || true)" if [ -z "$SYS_PY" ]; then err "No se encontró Python ${PY_MIN_MAJOR}.${PY_MIN_MINOR} o superior." echo echo " Instálalo y reintenta. La forma más simple en macOS:" echo " brew install python@3.12" echo " (o descárgalo de https://www.python.org/downloads/macos/)" hold_window exit 1 fi ok "Python encontrado: $SYS_PY ($("$SYS_PY" --version 2>&1))" # --- 2. Crear / reutilizar el entorno virtual ------------------------------ if [ -x "$VENV_PY" ]; then info "Entorno virtual ya existe en .venv (se reutiliza)." else info "Creando entorno virtual en .venv ..." "$SYS_PY" -m venv "$VENV_DIR" ok "Entorno virtual creado." fi # --- 3. Instalar dependencias --------------------------------------------- info "Actualizando pip ..." "$VENV_PY" -m pip install --upgrade pip >/dev/null info "Instalando dependencias de requirements.txt (puede tardar) ..." "$VENV_PY" -m pip install -r "$PROJECT_DIR/requirements.txt" ok "Dependencias de Python instaladas." # --- 4. Navegador de Playwright ------------------------------------------- # Los scripts ghl_browser_*.py automatizan la UI web con Chromium. Sin esto # fallarían al lanzar el navegador. info "Instalando Chromium para Playwright ..." if "$VENV_PY" -m playwright install chromium; then ok "Chromium instalado." else warn "No se pudo instalar Chromium para Playwright." warn "El dashboard funcionará; solo los scripts de navegador (workflows) fallarán." warn "Puedes reintentar luego con: .venv/bin/python -m playwright install chromium" fi # --- 5. Archivo .env ------------------------------------------------------- if [ -f "$PROJECT_DIR/.env" ]; then info "Archivo .env ya existe (no se sobrescribe)." elif [ -f "$PROJECT_DIR/.env.example" ]; then cp "$PROJECT_DIR/.env.example" "$PROJECT_DIR/.env" ok "Creado .env a partir de .env.example — revísalo y completa tus credenciales." else warn "No hay .env.example; omito la creación de .env." fi echo banner "Configuración completada" echo " Para arrancar el servidor: doble clic en start.command" echo " Para detenerlo: doble clic en stop.command" echo " Para reiniciarlo: doble clic en restart.command" echo echo " La primera vez, macOS puede pedir permiso para abrir un .command" echo " descargado: clic derecho > Abrir, o Ajustes > Privacidad y seguridad." hold_window