Uecko_ERP_FactuGES_sync/scripts/check-cron.sh

73 lines
1.9 KiB
Bash
Raw Normal View History

#!/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 ""