#!/usr/bin/env bash set -euo pipefail SCRIPT_VERSION="1.0" # ================================================ # FACTUGES SYNC - Valida entorno antes de cron # ----------------------------------------------- # Este script: # - Que Docker está instalado y accesible # - Que existen las imágenes Docker necesarias # - Que existen las compañías en companies.list # - Que las imágenes latest están cargadas # ================================================ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" COMPANIES_FILE="${SCRIPT_DIR}/companies.list" echo "🔍 Comprobaciones previas para FactuGES Sync cron" echo "" # ---- 1. Docker disponible ---- if ! command -v docker >/dev/null 2>&1; then echo "❌ Docker no está instalado o no está en PATH" exit 1 fi echo "✔ Docker disponible" # ---- 2. companies.list existe ---- if [[ ! -f "$COMPANIES_FILE" ]]; then echo "❌ No existe ${COMPANIES_FILE}" exit 1 fi echo "✔ companies.list encontrado" # ---- 3. Validar imágenes por compañía ---- ERRORS=0 while read -r COMPANY; do [[ -z "$COMPANY" ]] && continue [[ "$COMPANY" == \#* ]] && continue echo "" echo "→ Comprobando compañía: ${COMPANY}" for MODE in factuges verifactu; do IMAGE="factuges-sync-${MODE}:${COMPANY}-latest" if docker image inspect "$IMAGE" >/dev/null 2>&1; then echo " ✔ Imagen encontrada: ${IMAGE}" else echo " ❌ Imagen NO encontrada: ${IMAGE}" ERRORS=$((ERRORS + 1)) fi done done < "$COMPANIES_FILE" # ---- 4. Resultado final ---- if [[ "$ERRORS" -gt 0 ]]; then echo "" echo "❌ Hay ${ERRORS} errores. No es seguro instalar cron." exit 1 fi echo "" echo "---------------------------------------------" echo "✅ Todas las comprobaciones OK" echo "👉 Puedes ejecutar deploy-cron.sh con seguridad" echo "🧩 Script version: ${SCRIPT_VERSION}" echo "---------------------------------------------" echo ""