#!/bin/bash GREEN='\033[0;32m' RED='\033[0;31m' BLUE='\033[0;34m' YELLOW='\033[0;33m' CYAN='\033[0;36m' NC='\033[0m' print_message() { echo -e "${BLUE}=======================================${NC}" echo -e "${BLUE} $1${NC}" echo -e "${BLUE}=======================================${NC}" } PROJECT_DIR="/var/www/html" print_message "Actualización de Dependencias de Composer" [ ! -d "$PROJECT_DIR" ] && { echo -e "${RED}Error: El directorio $PROJECT_DIR no existe.${NC}"; exit 1; } cd "$PROJECT_DIR" || { echo -e "${RED}Error: No se pudo acceder al directorio $PROJECT_DIR${NC}"; exit 1; } [ ! -f composer.json ] && { echo -e "${RED}Error: No se encontró el archivo composer.json en $PROJECT_DIR${NC}"; exit 1; } echo -e "\n${YELLOW}Actualizando dependencias...${NC}" COMPOSER_OUTPUT=$(composer install --no-dev --optimize-autoloader 2>&1) if echo "$COMPOSER_OUTPUT" | grep -q "Xdebug: \[Step Debug\] Could not connect to debugging client"; then echo -e "\n${CYAN}Nota sobre Xdebug:${NC}" echo -e "Se detectó un mensaje de Xdebug intentando conectarse a un cliente de depuración." echo -e "Esto es normal si no estás depurando activamente y no afecta la actualización de dependencias." echo -e "\nPara desactivar Xdebug temporalmente, puedes usar:" echo -e "${YELLOW}php -dxdebug.mode=off /usr/local/bin/composer [comando]${NC}" echo -e "\nPara desactivar Xdebug permanentemente:" echo -e "1. Localiza tu php.ini (usa 'php --ini' para encontrarlo)" echo -e "2. Comenta la línea que carga Xdebug añadiendo un ';' al principio" echo -e "3. O cambia 'xdebug.mode' a 'off' en la configuración de Xdebug" echo -e "\nPara evitar intentos de conexión automáticos, añade esta línea a tu php.ini:" echo -e "${YELLOW}xdebug.start_with_request = trigger${NC}" fi echo -e "\n$COMPOSER_OUTPUT" if [ $? -eq 0 ]; then echo -e "\n${GREEN}¡Todas las dependencias han sido actualizadas exitosamente!${NC}" else echo -e "\n${RED}Error: Hubo un problema al actualizar las dependencias.${NC}" exit 1 fi echo -e "\n${YELLOW}Verificando actualizaciones disponibles...${NC}" OUTDATED=$(composer outdated --direct) if [ -n "$OUTDATED" ]; then echo -e "\n${YELLOW}Las siguientes dependencias tienen actualizaciones disponibles:${NC}" echo "$OUTDATED" echo -e "\n${YELLOW}Considere actualizarlas manualmente con 'composer update '${NC}" else echo -e "\n${GREEN}Todas las dependencias están actualizadas.${NC}" fi print_message "Proceso Completado"