#!/bin/bash

set -e

export DIST="buster"
export BACKUP="${BACKUP:-/ngcp-data/backup/ngcp-upgrade/ngcp-${UPGRADE_VERSION}/}"
export NGCP_NODENAME="/etc/ngcp_nodename"
export DB_CFG_FILE="/etc/ngcp-config/cfg_schema.db"
export DO_DB_BACKUP="${DO_DB_BACKUP:-yes}"
export CONFIRM_STEP_BY_STEP="${CONFIRM_STEP_BY_STEP:-no}"

export LC_ALL=C
export LANG=C

# be as non-interactive as possible
export APT_LISTCHANGES_FRONTEND=none
export APT_LISTBUGS_FRONTEND=none
export DEBIAN_PRIORITY=critical
export DEBIAN_FRONTEND=noninteractive

export APT_CMD="apt-get"
export APT_OPTS="-y -o DPkg::Options::=--force-confnew"

export CONFIG_YML="/etc/ngcp-config/config.yml"
export CONSTANTS_YML="/etc/ngcp-config/constants.yml"
export NETWORK_YML="/etc/ngcp-config/network.yml"

export APPROX_RW_PORT="9999"
export APPROX_RO_PORT="9998"

CE_EDITION=false
PRO_EDITION=false
CARRIER_EDITION=false

if [[ -f /etc/ngcp_ha_role ]]; then
  echo "Sipwise C5 CARRIER detected..."
  CARRIER_EDITION=true
elif [[ -f /etc/ngcp_ha_node ]]; then
  echo "Sipwise C5 PRO detected..."
  PRO_EDITION=true
else
  echo "Sipwise C5 CE detected..."
  CE_EDITION=true
fi

if ! "$CE_EDITION" && ! "$PRO_EDITION" && ! "$CARRIER_EDITION" ; then
  echo "Warning: Cannot detect the current system type (CE, PRO or Carrier)!" >&2
  echo "Please select it manually:" >&2
  select choice in CE PRO CARRIER ABORT ; do
    case "${choice}" in
      CE)
        echo "Sipwise C5 CE system chosen."
        CE_EDITION=true
        break
        ;;
      PRO)
        echo "Sipwise C5 PRO system chosen."
        PRO_EDITION=true
        break
        ;;
      CARRIER)
        echo "Sipwise C5 CARRIER system chosen."
        CARRIER_EDITION=true
        break
        ;;
      ABORT)
        echo "ERROR: aborting upgrade as requested." >&2
        exit 1
        ;;
      *)
        echo "ERROR: unknown choice '${choice}', aborting!" >&2
        exit 1
        ;;
    esac
  done
fi

if ! "$CE_EDITION" && ! "$PRO_EDITION" && ! "$CARRIER_EDITION" ; then
  echo "ERROR: Undefined system type (CE, PRO or Carrier), cannot continue!" >&2
  exit 1
fi

export CE_EDITION
export PRO_EDITION
export CARRIER_EDITION
