#!/bin/bash
# Load cluster env: production (194.x) or development (local only).
# Usage: source /home/env/load-env.sh [production|development]

_ENV_NAME="${1:-${XTREAM_ENV:-production}}"
_ENV_FILE="/home/env/${_ENV_NAME}.env"

if [ ! -f "$_ENV_FILE" ]; then
  echo "ERROR: missing $_ENV_FILE" >&2
  echo "  cp /home/env/production.env.example /home/env/production.env" >&2
  return 1 2>/dev/null || exit 1
fi

# shellcheck source=/dev/null
set -a
source "$_ENV_FILE"
set +a

# Normalize script aliases
CMS_HOST="${CMS_HOST:-${CMS_PUBLIC:-}}"
MAIN_HOST="${MAIN_HOST:-${MAIN_VLAN:-}}"
MAIN_SSH_PASS="${MAIN_SSH_PASS:-${MAIN_PASS:-}}"
CMS_PASS="${CMS_PASS:-}"

require_production_deploy() {
  if [ "${XTREAM_ENV:-production}" = "development" ] && [ -z "${ALLOW_PROD_DEPLOY:-}" ]; then
    echo "ERROR: deploy blocked — XTREAM_ENV=development (local dev only)." >&2
    echo "  Prod deploy: bash /home/fix-cms-production.sh" >&2
    echo "  Or: XTREAM_ENV=production bash ..." >&2
    return 1 2>/dev/null || exit 1
  fi
  require_cluster_deploy
}

require_cluster_deploy() {
  if [ -z "${CMS_PASS:-}" ] || [ -z "${MAIN_SSH_PASS:-}" ]; then
    echo "ERROR: fill CMS_PASS and MAIN_PASS in /home/env/${XTREAM_ENV:-production}.env" >&2
    return 1 2>/dev/null || exit 1
  fi
  if [ "${XTREAM_ENV:-production}" = "development" ]; then
    case "${CMS_HOST:-}" in
      194.*|17.17.17.*)
        echo "ERROR: development env must not target prod IPs (CMS_HOST=$CMS_HOST)" >&2
        return 1 2>/dev/null || exit 1
        ;;
    esac
  fi
}
