73 lines
1.9 KiB
Bash
73 lines
1.9 KiB
Bash
|
|
#!/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 ""
|
||
|
|
|