#!/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}
logicalRegionName=${5}

additional_args=$(jq -r '.' "${json_file_path}")

echo "additional_args: ${additional_args}"

image_registry=$(echo ${additional_args} | jq -r '.imageRegistry')
global_controlplane_ips=$(echo ${additional_args} | jq -r '.globalControlplaneIPs')
plugins=$(echo ${additional_args} | jq -r '.plugins')

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

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

mkdir "${deploy_dir}"
echo "Prepare manifest files"
cp "${variant_dir}/values_tmpl.yaml" "${deploy_dir}/values.yaml"

if [[ "$OSTYPE" == "darwin"* ]]; then
    SED_IN_PLACE=(-i '')
else
    SED_IN_PLACE=(-i)
fi

find "${deploy_dir}" -type f -exec sed "${SED_IN_PLACE[@]}" "s|TMPL_REGION|${region}|g" {} \;
sed "${SED_IN_PLACE[@]}" "s|IMAGE_REGISTRY|${image_registry}|g" "${deploy_dir}/values.yaml"

yq e -i ".proxy.loadBalancerSourceRanges |= ${global_controlplane_ips}" ${deploy_dir}/values.yaml
if [[ $plugins != "null" ]]; then
  yq e -i ". += {\"plugins\": $plugins}" ${deploy_dir}/values.yaml
fi
