#!/bin/bash # ============================================================================= # Horux Strategy - Script para Detener Servicios de Desarrollo # ============================================================================= # Este script detiene todos los servicios de Docker del entorno de desarrollo. # # Uso: # ./scripts/dev-down.sh # Detener servicios (mantiene volumenes) # ./scripts/dev-down.sh --clean # Detener y eliminar volumenes # ./scripts/dev-down.sh --prune # Limpieza completa (incluye imagenes) # ============================================================================= set -e # Colores para output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # Directorio del proyecto SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" print_header() { echo "" echo -e "${BLUE}=============================================${NC}" echo -e "${BLUE}$1${NC}" echo -e "${BLUE}=============================================${NC}" } print_step() { echo -e "${GREEN}[✓]${NC} $1" } print_warning() { echo -e "${YELLOW}[!]${NC} $1" } # ============================================================================= # Inicio del script # ============================================================================= cd "$PROJECT_DIR" print_header "Horux Strategy - Deteniendo Servicios" # Verificar que Docker esta corriendo if ! docker info &> /dev/null; then print_warning "Docker no esta corriendo" exit 0 fi # ----------------------------------------------------------------------------- # Opciones de limpieza # ----------------------------------------------------------------------------- case "$1" in --clean) print_warning "Modo limpieza: Se eliminaran los volumenes de datos" echo "" read -p "¿Estas seguro? Esto eliminara todos los datos locales (y/N): " confirm if [[ "$confirm" =~ ^[Yy]$ ]]; then echo "Deteniendo servicios y eliminando volumenes..." docker compose down -v print_step "Servicios detenidos y volumenes eliminados" else echo "Operacion cancelada" exit 0 fi ;; --prune) print_warning "Modo limpieza completa: Se eliminaran volumenes e imagenes" echo "" read -p "¿Estas seguro? Esto eliminara TODOS los datos locales (y/N): " confirm if [[ "$confirm" =~ ^[Yy]$ ]]; then echo "Deteniendo servicios..." docker compose down -v --rmi local echo "Limpiando recursos no utilizados..." docker system prune -f print_step "Limpieza completa realizada" else echo "Operacion cancelada" exit 0 fi ;; --help|-h) echo "" echo "Uso: ./scripts/dev-down.sh [opcion]" echo "" echo "Opciones:" echo " (sin opcion) Detener servicios, mantener datos" echo " --clean Detener servicios y eliminar volumenes" echo " --prune Limpieza completa (volumenes + imagenes)" echo " --help, -h Mostrar esta ayuda" echo "" exit 0 ;; *) # Comportamiento por defecto: solo detener, mantener volumenes echo "Deteniendo servicios (los datos se mantienen)..." docker compose down print_step "Servicios detenidos" ;; esac # ----------------------------------------------------------------------------- # Verificar estado # ----------------------------------------------------------------------------- echo "" echo "Estado de contenedores Horux:" if docker ps -a --filter "name=horux" --format "table {{.Names}}\t{{.Status}}" | grep -q horux; then docker ps -a --filter "name=horux" --format "table {{.Names}}\t{{.Status}}" else echo " No hay contenedores activos" fi echo "" echo "Para volver a iniciar los servicios:" echo " make dev" echo " # o" echo " ./scripts/dev-setup.sh" echo ""