#!/bin/bash
set -euo pipefail

# === Gestion du paramètre --force ===
FORCE=false
for arg in "$@"; do
  [[ "$arg" == "--force" ]] && FORCE=true
done

# === Variables ===
MARKER_ID="caddy_cloudflare_token"
CONFIG_HOST="ket.inxs.me"
CADDYFILE="/etc/caddy/Caddyfile"

# === Charger les fonctions partagées ===
source /opt/scripts_local/shared_functions.sh

# === Vérifier le marker ===
setup_marker check "$MARKER_ID" "$FORCE"

echo "🔧 [$MARKER_ID] Début de la configuration Cloudflare pour Caddy..."

# === 1. Modifier le Caddyfile si nécessaire ===
OLD_TOKEN='dns cloudflare "HtaJsMgr3hhAFA6ujOP2pinl3NOECEo0r0UZtesO"'
NEW_TOKEN='dns cloudflare {env.CLOUDFLARE_API_TOKEN}'

if grep -qF "$OLD_TOKEN" "$CADDYFILE"; then
    echo "📝 Mise à jour du Caddyfile..."
    sudo sed -i "s|$OLD_TOKEN|$NEW_TOKEN|g" "$CADDYFILE"
else
    echo "ℹ️ Aucun remplacement nécessaire dans $CADDYFILE"
fi

# === 2. Installer le service systemd personnalisé ===
echo "⬇️ Synchronisation du service systemd caddy.service..."
sudo rsync -avP "$CONFIG_HOST:/myshares/shared/etc/systemd/system/caddy.service" /etc/systemd/system/
sudo chown root:root /etc/systemd/system/caddy.service
sudo chmod 600 /etc/systemd/system/caddy.service

# === 3. Récupérer le fichier d’environnement contenant le token ===
echo "⬇️ Synchronisation du fichier cloudflare_token.env..."
sudo rsync -avP "$CONFIG_HOST:/myshares/shared/etc/caddy/cloudflare_token.env" /etc/caddy/
sudo chown caddy:caddy /etc/caddy/cloudflare_token.env
sudo chmod 600 /etc/caddy/cloudflare_token.env

# === 4. Reload systemd + restart Caddy ===
echo "🔁 Reload systemd et restart Caddy..."
sudo systemctl daemon-reexec || true
sudo systemctl daemon-reload
sudo systemctl restart caddy

sleep 3

echo "🧾 Logs Caddy (dernier démarrage) :"
sudo journalctl -u caddy --no-pager -n 20

# === 5. Marquer comme installé ===
setup_marker create "$MARKER_ID"

echo "✅ [$MARKER_ID] Configuration terminée."