#!/usr/bin/env bash

set -euo pipefail

if [[ -z ${CROSSPLANE_AWS_TAG+undefined-guard} ]] ; then
    echo "CROSSPLANE_AWS_TAG must be set" && exit 1
fi

if [[ -z ${CROSSPLANE_GCP_TAG+undefined-guard} ]] ; then
    echo "CROSSPLANE_AWS_TAG must be set" && exit 1
fi

ROOT=$(cd $(dirname ${BASH_SOURCE[0]})/.. && pwd)

go mod edit -replace github.com/crossplane/provider-aws=github.com/tidbcloud/provider-aws@${CROSSPLANE_AWS_TAG}

declare -a awsCRDs=(
    "vpcpeering.aws.crossplane.io_vpcpeeringconnections.yaml"
    "kms.aws.crossplane.io_keys.yaml"
    "aws.crossplane.io_providerconfigs.yaml"
    "s3.aws.crossplane.io_buckets.yaml"
    "s3.aws.crossplane.io_bucketpolicies.yaml"
    "route53.aws.crossplane.io_resourcerecordsets.yaml"
    "eks.aws.crossplane.io_nodegroups.yaml"
    "eks.aws.crossplane.io_clusters.yaml"
    "ec2.aws.crossplane.io_vpcendpoints.yaml"
    "ec2.aws.crossplane.io_vpcendpointserviceconfigurations.yaml"
)

for crd in "${awsCRDs[@]}"
do
    curl -s "https://raw.githubusercontent.com/tidbcloud/provider-aws/${CROSSPLANE_AWS_TAG}/package/crds/${crd}" > "${ROOT}/config/crossplane/${crd}"
done


declare -a gcpCRDs=(
    "vpcpeering.gcp.crossplane.io_peerings.yaml"
    "gcp.crossplane.io_providerconfigs.yaml"
    "storage.gcp.crossplane.io_buckets.yaml"
    "storage.gcp.crossplane.io_bucketpolicies.yaml"
    "dns.gcp.crossplane.io_resourcerecordsets.yaml"
    "iam.gcp.crossplane.io_serviceaccounts.yaml"
    "iam.gcp.crossplane.io_serviceaccountkeys.yaml"
)

for crd in "${gcpCRDs[@]}"
do
    curl -s "https://raw.githubusercontent.com/tidbcloud/provider-gcp/${CROSSPLANE_GCP_TAG}/package/crds/${crd}" > "${ROOT}/config/crossplane/${crd}"
done
