VanguardAI/docker/init_scripts/update_composer.sh
2024-10-27 12:50:51 -06:00

63 lines
2.5 KiB
Bash
Executable File

#!/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 <package>'${NC}"
else
echo -e "\n${GREEN}Todas las dependencias están actualizadas.${NC}"
fi
print_message "Proceso Completado"