#!/usr/bin/env bash
# One-time POG-EDGE bench setup (run via SSH from PC or once on each Pi).
# Idempotent — safe to re-run.
#
#   POG_EDGE_ROLE=office sudo -E bash setup_edge_bench.sh
#   POG_EDGE_ROLE=pos4   sudo -E bash setup_edge_bench.sh

set -euo pipefail

EDGE_ROOT="$(cd "$(dirname "$0")" && pwd)"
# shellcheck disable=SC1091
source "${EDGE_ROOT}/pog_edge_env.sh"

if [[ -z "${POG_EDGE_ROLE:-}" ]]; then
  echo "FATAL: set POG_EDGE_ROLE=office|pos4" >&2
  exit 1
fi

if [[ "${EUID}" -ne 0 ]]; then
  echo "Run with sudo -E" >&2
  exit 1
fi

sed -i 's/\r$//' "${EDGE_ROOT}/bench.env.example" 2>/dev/null || true
if [[ ! -f "${EDGE_ROOT}/bench.env" ]]; then
  cp "${EDGE_ROOT}/bench.env.example" "${EDGE_ROOT}/bench.env"
  sed -i "s/^POG_EDGE_ROLE=.*/POG_EDGE_ROLE=${POG_EDGE_ROLE}/" "${EDGE_ROOT}/bench.env"
fi
sed -i 's/\r$//' "${EDGE_ROOT}/bench.env"

if ! command -v wg >/dev/null 2>&1; then
  apt-get install -y wireguard
fi

REAL_USER="${SUDO_USER:-topbox}"
if [[ ! -f "${POG_EDGE_KEYS_DIR}/wg0.conf.${POG_EDGE_ROLE}" ]]; then
  if [[ "${POG_EDGE_ROLE}" == "office" ]]; then
    sudo -u "${REAL_USER}" bash "${EDGE_ROOT}/gen_bench_wg_bundle.sh"
  else
    echo "FATAL: keys missing — run gen_bench_wg_bundle.sh on office Pi first, then re-run here" >&2
    exit 1
  fi
fi

bash "${EDGE_ROOT}/ensure_wg_keys.sh"
echo "POG-EDGE setup OK (${POG_EDGE_ROLE})"
