#!/usr/bin/env bash # ============================================================================== # Help Desk — Script de Inicialización y Gestión Local # Ecosistema Telcotronics # ============================================================================== set -e GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' RED='\033[0;31m' CYAN='\033[0;36m' NC='\033[0m' echo -e "${BLUE}=====================================================${NC}" echo -e "${BLUE}🔧 Help Desk — Inicialización y Entorno Local${NC}" echo -e "${BLUE}=====================================================${NC}" # 1. Verificar Node.js echo -e "${YELLOW}[1/4] Verificando versión de Node.js...${NC}" NODE_VER=$(node -v 2>/dev/null || true) if [ -z "$NODE_VER" ]; then echo -e "${RED}❌ Error: Node.js no está instalado.${NC}" exit 1 fi echo -e "${GREEN}✓ Node.js detectado: $NODE_VER${NC}" # 2. Verificar o generar archivo .env echo -e "${YELLOW}[2/4] Verificando configuración .env...${NC}" if [ ! -f .env ]; then if [ -f .env.example ]; then cp .env.example .env echo -e "${CYAN}ℹ️ Se ha creado .env a partir de .env.example. Por favor revisa las credenciales de BD.${NC}" else echo -e "${RED}❌ Error: No se encontró .env ni .env.example.${NC}" exit 1 fi else echo -e "${GREEN}✓ Archivo .env presente.${NC}" fi # 3. Verificar dependencias echo -e "${YELLOW}[3/4] Verificando dependencias npm...${NC}" if [ ! -d "node_modules" ]; then echo -e "${CYAN}Instalando dependencias de Node.js...${NC}" npm install else echo -e "${GREEN}✓ Directorio node_modules presente.${NC}" fi # 4. Menú de Opciones echo -e "${YELLOW}[4/4] Selecciona una acción:${NC}" echo -e " ${CYAN}1)${NC} Iniciar servidor en modo desarrollo (node app.js)" echo -e " ${CYAN}2)${NC} Ejecutar setup y migraciones de Base de Datos (node config/setup.js)" echo -e " ${CYAN}3)${NC} Probar flujo de visitas técnicas FSM (node scripts/test_visita_flow.js)" echo -e " ${CYAN}4)${NC} Consultar bitácora centralizada de errores (npm run check:errors)" echo -e " ${CYAN}5)${NC} Desplegar a producción con SIAX Monitor (./desplegar.sh)" echo -e " ${CYAN}6)${NC} Consultar estado en SIAX Monitor (./desplegar.sh --check)" echo -e " ${CYAN}7)${NC} Salir" echo -n "Opción [1-7]: " read -r OPCION case "$OPCION" in 1) echo -e "${GREEN}Iniciando Help Desk en http://localhost:3008...${NC}" node app.js ;; 2) echo -e "${GREEN}Ejecutando setup y migraciones de MariaDB...${NC}" node config/setup.js ;; 3) echo -e "${GREEN}Ejecutando prueba integral de visitas técnicas...${NC}" node scripts/test_visita_flow.js ;; 4) echo -e "${GREEN}Consultando bitácora de errores...${NC}" npm run check:errors ;; 5) echo -e "${GREEN}Iniciando despliegue hacia producción con SIAX Monitor...${NC}" ./desplegar.sh ;; 6) echo -e "${GREEN}Consultando estado en SIAX Monitor...${NC}" ./desplegar.sh --check ;; 7) echo "Operación cancelada." exit 0 ;; *) echo -e "${RED}Opción no válida.${NC}" exit 1 ;; esac