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

region=${1}
env=${2}
cloud=${3}
json_file_path=${4}
logicalRegionName=${5}
cluster=${6:-dev-seed-${logicalRegionName}}

if ! command -v jq &> /dev/null; then
    echo "jq could not be found. Please install jq to continue."
    exit 1
fi

irsa_role_arn=$(jq -r '.irsa_role_arn // ""' "${json_file_path}")
if [[ -z "${irsa_role_arn}" ]]; then
  echo "additionalArgs.irsa_role_arn is required" >&2
  exit 1
fi

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

if [ -e ${deploy_dir} ]; then
  echo "Deploy directory ${deploy_dir} already exists, overwriting..."
fi
mkdir -p "${deploy_dir}"

cp "${ROOT}/values-base.yaml" "${deploy_dir}/values.yaml"

CLUSTER="${cluster}" IRSA_ROLE_ARN="${irsa_role_arn}" S3_PREFIX="falco/${env}/${cluster}" \
  yq -i '
    .falcosidekick.config.customfields = "cluster:" + strenv(CLUSTER) |
    .falcosidekick.config.aws.rolearn = strenv(IRSA_ROLE_ARN) |
    .falcosidekick.config.aws.s3.prefix = strenv(S3_PREFIX)
  ' "${deploy_dir}/values.yaml"

echo "Generated ${deploy_dir}/values.yaml"
