#!/usr/bin/env bash
# Déploie les correctifs affiliation, exécute la restauration et vide le cache W3TC.
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"

PATHS=(
  "www/wp-content/themes/numberone/inc/seo-geo-phase2.php"
  "scripts/setup-affiliate-program.php"
  "scripts/preview-affiliate-emails.php"
)

for rel in "${PATHS[@]}"; do
  ./scripts/deploy-ssh.sh --only-path "$rel"
done

ENV_FILE="${DEPLOY_ENV:-$ROOT/.secrets/.env}"
DEPLOY_HOST=""
DEPLOY_USER=""
DEPLOY_PATH=""
DEPLOY_PORT="22"
SSH_PRIVATE_KEY_FILE=""

while IFS= read -r line || [[ -n "$line" ]]; do
  line="${line%%#*}"
  [[ "$line" == *"="* ]] || continue
  key="${line%%=*}"
  val="${line#*=}"
  case "$key" in
    DEPLOY_HOST) DEPLOY_HOST="$val" ;;
    DEPLOY_USER) DEPLOY_USER="$val" ;;
    DEPLOY_PATH) DEPLOY_PATH="$val" ;;
    DEPLOY_PORT) DEPLOY_PORT="$val" ;;
    SSH_PRIVATE_KEY_FILE) SSH_PRIVATE_KEY_FILE="$val" ;;
  esac
done < "$ENV_FILE"

[[ -n "$DEPLOY_HOST" && -n "$DEPLOY_USER" && -n "$DEPLOY_PATH" ]] || {
  echo "Variables DEPLOY_* manquantes dans $ENV_FILE" >&2
  exit 1
}

SSH_OPTS=(-4 -o StrictHostKeyChecking=accept-new -p "$DEPLOY_PORT")
if [[ -n "$SSH_PRIVATE_KEY_FILE" ]]; then
  [[ "$SSH_PRIVATE_KEY_FILE" != /* ]] && SSH_PRIVATE_KEY_FILE="$ROOT/$SSH_PRIVATE_KEY_FILE"
  SSH_OPTS+=(-i "$SSH_PRIVATE_KEY_FILE" -o IdentitiesOnly=yes)
fi

ssh "${SSH_OPTS[@]}" "${DEPLOY_USER}@${DEPLOY_HOST}" \
  "cd ${DEPLOY_PATH} && php scripts/setup-affiliate-program.php"

echo "Déploiement affiliation terminé."
