#!/bin/bash
set -euo pipefail
# When changing this script, remember to modify the corresponding github action
vendor=${1}
env=${2}
region=${3}
logical_region=${4}
cluster=${5}
json_file_path=${6}
args=$(jq -r '.' "${json_file_path}")

if [[ $vendor == "azure" || $vendor == "aws" || $vendor == "gcp" ]];then
  subnet_name=$(echo ${args} | jq -r '.subnetName')
  image_registry=$(echo ${args} | jq -r '.imageRegistry')
  pls_name=$(echo ${args} | jq -r '.privateLinkServiceName')
  pls_resource_group=$(echo ${args} | jq -r '.privateLinkServiceResourceGroup // ""')

  ROOT=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)
  deploy_dir="${ROOT}/envs/${env}-${vendor}-${logical_region}"
  deploy_file="${deploy_dir}/values.yaml"
  variant_dir="${ROOT}/variants"

  if [ -d ${deploy_dir} ]; then
    echo "New region deploy file already exist, skip it"
  else
    mkdir -p ${deploy_dir}
    echo "Prepare manifest files"
    cp "${variant_dir}/${vendor}/${env}-${vendor}-values-tmpl.yaml" "${deploy_file}"
    sed -i "s|TMPL_PRIVATE_LINK_SERVICE_NAME|${pls_name}|g" ${deploy_file}
    if [[ "${vendor}" == "azure" ]]; then
      if [[ -n "${pls_resource_group}" ]]; then
        sed -i "s|TMPL_PRIVATE_LINK_SERVICE_RESOURCE_GROUP|${pls_resource_group}|g" "${deploy_file}"
      else
        sed -i "/service.beta.kubernetes.io\\/azure-pls-resource-group:/d" "${deploy_file}"
      fi
    fi
    sed -i "s|TMPL_LOGICAL_REGION|${logical_region}|g" ${deploy_file}
    sed -i "s|TMPL_SUBNET_NAME|${subnet_name}|g" ${deploy_file}
    sed -i "s|TMPL_IMAGE_REGISTRY|${image_registry}|g" ${deploy_file}
  fi
fi

if [[ $vendor == "alicloud" ]];then
  zone_maps=$(echo ${args} | jq -r '.zoneMaps')
  image_registry=$(echo ${args} | jq -r '.imageRegistry')
  ROOT=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)
  deploy_dir="${ROOT}/envs/${env}-${vendor}-${logical_region}"
  deploy_file="${deploy_dir}/values.yaml"
  variant_dir="${ROOT}/variants"

  lb_name="nginx-write-o11y-$env-$region"

  if [ -d ${deploy_dir} ]; then
    echo "New region deploy file already exist, skip it"
  else
    mkdir -p ${deploy_dir}
    echo "Prepare manifest files"
    cp "${variant_dir}/alicloud/${env}-${vendor}-values-tmpl.yaml" "${deploy_file}"
    sed -i "s|TMPL_ZONE_MAPS|${zone_maps}|g" ${deploy_file}
    sed -i "s|TMPL_LB_NAME|${lb_name}|g" ${deploy_file}
    sed -i "s|TMPL_IMAGE_REGISTRY|${image_registry}|g" ${deploy_file}
  fi
fi
