#!/usr/bin/env bash

set -euo pipefail
# When changing this script, remember to modify the corresponding github action
region=${1}
env=${2}
cloud=${3}
json_file_path=${4}

additional_args=$(jq -r '.' "${json_file_path}")
echo "Additional args: ${additional_args}"

external_secrets_operator_client_id=$(echo "${additional_args}" | jq -r '.externalSecretsOperatorClientID')
tenant_id=$(echo "${additional_args}" | jq -r '.azureTenantID')
secretstore_vault_url=$(echo "${additional_args}" | jq -r '.secretstoreVaultURL')

ROOT=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)
deploy_dir="${ROOT}/envs/${env}-${region}"
variant_dir="${ROOT}/variants/${env}-${cloud}"

if [ -e ${deploy_dir} ]; then
  echo "New region deploy directory already exist"
  exit 1
fi

mkdir -p "${deploy_dir}"
echo "Prepare manifest files"
cp "${variant_dir}/kustomization_tmpl.yaml" "${deploy_dir}/kustomization.yaml"
cp "${variant_dir}/secretstore_tmpl.yaml" "${deploy_dir}/secretstore.yaml"
cp "${variant_dir}/serviceaccount_tmpl.yaml" "${deploy_dir}/serviceaccount.yaml"

sed -i "s|VAULT_URL|${secretstore_vault_url}|g" "${deploy_dir}/secretstore.yaml"
sed -i "s|TENANT_ID|${tenant_id}|g" "${deploy_dir}/serviceaccount.yaml"
sed -i "s|CLIENT_ID|${external_secrets_operator_client_id}|g" "${deploy_dir}/serviceaccount.yaml"
