#!/bin/sh
# Gera /etc/cron.d/wanguard-telic e recarrega o servico de cron.
# Compatibilidade: Debian/Ubuntu/Alpine (POSIX sh).

CRON_FILE="/etc/cron.d/wanguard-telic"
BACKUP_DIR="/root"
TIMESTAMP="$(date +%F_%H%M%S)"
BACKUP_FILE="${BACKUP_DIR}/wanguard-telic.cron.bak.${TIMESTAMP}"

echo "Executando como: $(id -un)"

# Precisa de root para escrever em /etc/cron.d e recarregar o cron.
if [ "$(id -u)" -ne 0 ]; then
  echo "ERRO: execute este script como root."
  exit 1
fi

# Backup do arquivo anterior (se existir).
if [ -f "${CRON_FILE}" ]; then
  echo "Fazendo backup de ${CRON_FILE} -> ${BACKUP_FILE}"
  cp "${CRON_FILE}" "${BACKUP_FILE}"
fi

# Cria/reescreve o arquivo de cron.
# IMPORTANTE: cada linha do crontab deve estar em UMA unica linha.
#             Variaveis de ambiente (PATH=...) vao em linha separada.
cat > "${CRON_FILE}" <<'EOF'
# Crons para WANGUARD-TELIC (arquivo gerado automaticamente)
PATH=/usr/local/bin:/usr/bin:/bin
SHELL=/bin/sh

0 1 * * *   root /bin/sh /root/exporta_zabbix.py
0 4 * * 4   root /bin/sh /root/exporta_wanguard.py
0 1 * * 6   root /bin/sh /root/exporta_exabgp.py
*/5 * * * * root /usr/bin/python3 /root/exporta_exabgp.py --zabbix-server 2804:54c8:cafe:85::14 --host wanguardcliente.telic.cl >> /var/log/exporta_exabgp.log 2>&1
EOF

# Permissoes e dono exigidos pelo cron em /etc/cron.d.
chmod 644 "${CRON_FILE}"
chown root:root "${CRON_FILE}"

# Recarrega o servico de cron se existir (nao e critico se falhar).
if command -v systemctl >/dev/null 2>&1; then
  systemctl try-reload-or-restart cron.service 2>/dev/null || \
  systemctl try-reload-or-restart crond.service 2>/dev/null || true
elif command -v service >/dev/null 2>&1; then
  service cron reload 2>/dev/null || service crond reload 2>/dev/null || true
fi

echo "Arquivo ${CRON_FILE} criado/atualizado com sucesso."
