#!/usr/bin/env bash set -euo pipefail SCRIPT_VERSION="1.0" # ================================================ # FACTUGES SYNC - Deploy cron jobs (MULTI COMPANY) # ----------------------------------------------- # Este script: # - Lee la lista de compañías desde companies.list # - Genera automáticamente los CRON de cada compañía # - Instala un CRON único con todas las compañías # - Crea directorios de logs por compañía # ================================================ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" COMPANIES_FILE="${SCRIPT_DIR}/companies.list" if [[ ! -f "$COMPANIES_FILE" ]]; then echo "❌ ERROR: No existe ${COMPANIES_FILE}" exit 1 fi CRON_FILE="/tmp/factuges-sync-cron-all.txt" echo "" echo "-------------------------------------------------------" echo " FACTUGES SYNC - Deploy cron jobs (MULTI COMPANY) v${SCRIPT_VERSION}" echo "-------------------------------------------------------" echo "" echo "📄 Generando CRON multi-compañía..." echo "" > "$CRON_FILE" while read -r COMPANY; do [[ -z "$COMPANY" ]] && continue # saltar líneas vacías [[ "$COMPANY" == \#* ]] && continue # saltar comentarios LOG_DIR="/var/log/factuges-sync/${COMPANY}" echo "→ Añadiendo compañía: ${COMPANY}" echo " Logs en: ${LOG_DIR}" # Crear directorio de logs por compañía sudo mkdir -p "$LOG_DIR" cat >> "$CRON_FILE" <> ${LOG_DIR}/factuges.log 2>&1 # Sincronización Verifactu (cada 7 min) */7 * * * * docker run --rm \ -e ENV=prod \ factuges-sync-verifactu:${COMPANY}-latest \ >> ${LOG_DIR}/verifactu.log 2>&1 EOF done < "$COMPANIES_FILE" echo "📥 Instalando CRON final..." sudo crontab "$CRON_FILE" echo "" echo "---------------------------------------------" echo "🎯 CRON multi-compañía instalado correctamente" echo "✔ companies.list leído desde: ${COMPANIES_FILE}" echo "✔ Ver crontab: sudo crontab -l" echo "✔ Logs: /var/log/factuges-sync//" echo "🧩 Script version: ${SCRIPT_VERSION}" echo "---------------------------------------------" echo ""