#!/usr/bin/env bash
set -euo pipefail
set -x

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

usage() {
cat << EOF
"""
Example:
# Init a new stack
$ hack/local-up-monitoring.sh

# Continue up current stack
$ hack/local-up-monitoring.sh -c

# Delete current stack
$ hack/local-up-monitoring.sh -d

Available Command:
  -c        continue up current stack
  -d        delete current stack and rendered dir
  --help    show usage

Available Environment:
  CLUSTER         default is freetier
  PROVIDER_TYPE   eks or ack, default is eks
"""
EOF
}

CLUSTER=${CLUSTER:-freetier}
PROVIDER_TYPE=${PROVIDER_TYPE:-eks}
V1=${1:-""}

if [ "${V1}" == "--help" ];then
    usage
    exit
fi

npm install
export PULUMI_CONFIG_PASSPHRASE="test"
export MOCK_STACK="true"
export CLUSTER=${CLUSTER}
export PROVIDER_TYPE=${PROVIDER_TYPE}

NO_MOCK_OUTPUT=${NO_MOCK_OUTPUT:-""}
if [[ -z $NO_MOCK_OUTPUT ]] ; then
  export MOCK_OUTPUT=${MOCK_OUTPUT:-"true"}
fi

new() {
  pulumi login
  md5sum="md5sum"
  if ! command -v md5sum >/dev/null && command -v md5 >/dev/null ; then
    md5sum="md5"
  fi
  id=$(date +%s%N | "$md5sum" | head -c 6)

  pulumi stack init monitoring_${id} --non-interactive
}

cleanup() {
  pulumi stack rm --yes --non-interactive -f
  rm -rf ${ROOT}/rendered
  exit
}

trap cleanup INT TERM;

if [ "${V1}" == "-c" ]; then
    echo "continue up current stack"
elif [ "${V1}" == "-d" ];then
    cleanup
else
    new
fi

printenv CLUSTER
printenv PROVIDER_TYPE
$ROOT/hack/env-monitor-mock.sh pulumi up --yes --non-interactive
