# shellcheck shell=bash
# Variables PrestaShop démo — à sourcer depuis scripts/deploy-prestashop-demo-module.sh

_inc="${BASH_SOURCE[0]:-$0}"
case "$_inc" in
  /*) ;;
  *) _inc="$(pwd)/$_inc" ;;
esac
_PS_DEMO_INC_DIR="$(cd "$(dirname "$_inc")" && pwd)"
PS_DEMO_ROOT="$(cd "$_PS_DEMO_INC_DIR/.." && pwd)"

ENV_FILE="${PS_DEMO_ENV:-$PS_DEMO_ROOT/.secrets/.env}"

load_env_file() {
  local file="$1"
  [[ -f "$file" ]] || { echo "Fichier introuvable : $file" >&2; return 1; }
  while IFS= read -r line || [[ -n "$line" ]]; do
    line="${line%%#*}"
    line="${line#"${line%%[![:space:]]*}"}"
    line="${line%"${line##*[![:space:]]}"}"
    [[ -n "$line" ]] || continue
    [[ "$line" == *"="* ]] || continue
    local key="${line%%=*}"
    local val="${line#*=}"
    key="${key#"${key%%[![:space:]]*}"}"
    key="${key%"${key##*[![:space:]]}"}"
    val="${val#"${val%%[![:space:]]*}"}"
    val="${val%"${val##*[![:space:]]}"}"
    if [[ "$val" == \"*\" && "$val" == *\" ]]; then
      val="${val:1:${#val}-2}"
    elif [[ "$val" == \'*\' && "$val" == *\' ]]; then
      val="${val:1:${#val}-2}"
    fi
    if [[ -n "${!key:-}" ]]; then
      continue
    fi
    export "$key=$val"
  done <"$file"
}

load_env_file "$ENV_FILE" || exit 1

: "${PS_DEMO_HOST:?PS_DEMO_HOST manquant dans $ENV_FILE}"
: "${PS_DEMO_USER:?PS_DEMO_USER manquant dans $ENV_FILE}"
: "${PS_DEMO_PATH:?PS_DEMO_PATH manquant dans $ENV_FILE}"

PS_DEMO_PORT="${PS_DEMO_PORT:-22}"
PS_DEMO_MODULE_NAME="${PS_DEMO_MODULE_NAME:-amflags}"
PS_DEMO_MODULE_PATH="${PS_DEMO_MODULE_PATH:-$PS_DEMO_ROOT/../bohomane_refonte/modules/$PS_DEMO_MODULE_NAME}"
PS_DEMO_SSH_KEY="${PS_DEMO_SSH_KEY:-${SSH_PRIVATE_KEY_FILE:-$HOME/.ssh/amssh}}"
PS_DEMO_SSH_EXTRA_OPTS="${PS_DEMO_SSH_EXTRA_OPTS:--o ServerAliveInterval=25 -o ServerAliveCountMax=300 -o TCPKeepAlive=yes -o ConnectTimeout=60}"

resolve_ps_demo_ssh_key() {
  local key="$PS_DEMO_SSH_KEY"
  if [[ "$key" != /* ]]; then
    key="$PS_DEMO_ROOT/$key"
  fi
  [[ -f "$key" ]] || { echo "Clé SSH introuvable : $key" >&2; return 1; }
  printf '%s' "$key"
}
