#!/bin/bash

# This script requires several environment variables to be set with secrets:
#
#export GITHUB_TOKEN=852aREDACTED
#export NPM_TOKEN=6a3fREDACTED
#export MFA_DEVICE=arn:aws:iam::197175460810:mfa/evans-tucker
#export TF_VAR_githubToken=852aREDACTED
#export TF_VAR_npmToken=6a3fREDACTED
#
# I put them in my laptop here:
#source $HOME/meridio_secrets.sh

#npm install
#npm install @meridio/mr-ecs-services-ops@1.1.15 --no-save

if [[ $# -ne 3 ]]; then
  echo "Usage: $0 env action MFA_code"
  echo "Example: $0 lawcoin plan 758305"
  exit 1
fi

export ACTION=$2
export COUNTRY=usa
export ENV=$1
export MFA_CODE=$3
export NODE_PATH=na
export REGION=us-east-1
export REPO_NAME=meridio-api
export REPO_OWNER=MeridioRE
export SERVICE_NAME=pangea-backend

case $ENV in
  consensys)
    export AWS_PROFILE=default
    export BRANCH=env-consensys
    export EXTERNAL_ID=b858ed71-46d1-4d05-b9f0-6a714b92aa85
    export ROLE=arn:aws:iam::392496416668:role/brian-infrastructure-prov
    export RUN_ARGS="cd-consensys:$ACTION"
    ;;
  lawcoin)
    export AWS_PROFILE=default
    export BRANCH=env-lawcoin
    export EXTERNAL_ID=f92d9592-863e-4420-9885-a5708ff86504
    export ROLE=arn:aws:iam::073570432085:role/brian-infrastructure-priv
    export RUN_ARGS="cd-lawcoin:$ACTION"
    ;;
  prd)
    export AWS_PROFILE=meridio-mgmt
    export BRANCH=master
    export EXTERNAL_ID=f3d32d4d-8efe-4cfd-956c-b1ee748689e9
    export ROLE=arn:aws:iam::254578462750:role/brian-infrastructure-prov-prd
    export RUN_ARGS="cd-prd:$ACTION"
    ;;
  stg)
    export AWS_PROFILE=MeridioStaging
    export BRANCH=release/0.4.5
    export EXTERNAL_ID=c49bad99-932c-45f9-9d50-ee0ae2cf9110 
    export ROLE=arn:aws:iam::847857669029:role/infrastructure-provisioning-evans-stg
    export RUN_ARGS="cd-stg:$ACTION"
    ;;
  uat)
    export AWS_PROFILE=default
    export BRANCH=develop
    export EXTERNAL_ID=1015f140-d815-48e4-94fd-6be2127a855d
    export ROLE=arn:aws:iam::157655488178:role/infrastructure-provisioning-dave-uat
    export RUN_ARGS="cicd:$ACTION"
    ;;
  whitelabel)
    export AWS_PROFILE=MeridioWhitelabel
    export BRANCH=env-solutions
    export EXTERNAL_ID=2e464fc1-e38c-45fc-a708-7e8989aa1136
    export ROLE=arn:aws:iam::123717509726:role/brian-infrastructure-prov
    export RUN_ARGS="cd-whitelabel:$ACTION"
    ;;
esac

unset AWS_SESSION_TOKEN
mfa_enabled_temp_cred=$(aws sts get-session-token --serial-number $MFA_DEVICE --token-code $MFA_CODE)
export AWS_ACCESS_KEY_ID=$(echo $mfa_enabled_temp_cred | jq .Credentials.AccessKeyId | xargs)
export AWS_SECRET_ACCESS_KEY=$(echo $mfa_enabled_temp_cred | jq .Credentials.SecretAccessKey | xargs)
export AWS_SESSION_TOKEN=$(echo $mfa_enabled_temp_cred | jq .Credentials.SessionToken | xargs)

echo "Running: npm run $RUN_ARGS 'forceSpecs=1'"
npm run $RUN_ARGS 'forceSpecs=1'
