#!/bin/bash

set -eux

CUR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)

ENV=
API_AK=
API_SK=
serverlessProjectId=
serverlessClusterId=
eksProjectId=
eksClusterId=
gkeProjectId=
gkeClusterId=

while [ "$#" -ge 2 ]; do
	case "$1" in
	--env)
		ENV="$2"
		shift 2
		;;
	--api_ak)
		API_AK="$2"
		shift 2
		;;
	--api_sk)
		API_SK="$2"
		shift 2
		;;
	--serverless_cluster)
		SERVERLESS_CLUSTER="$2"
		if [ -n "$SERVERLESS_CLUSTER" ]; then
			IFS=":" read -ra parts <<<"$SERVERLESS_CLUSTER"
			if [ "${#parts[@]}" -eq 2 ]; then
				serverlessProjectId="${parts[0]}"
				serverlessClusterId="${parts[1]}"
				shift 2
			else
				echo "No need test serverless cluster"
				shift 1
			fi
		fi
		;;
	--eks_cluster)
		EKS_CLUSTER="$2"
		if [ -n "$EKS_CLUSTER" ]; then
			IFS=":" read -ra parts <<<"$EKS_CLUSTER"
			if [ "${#parts[@]}" -eq 2 ]; then
				eksProjectId="${parts[0]}"
				eksClusterId="${parts[1]}"
				shift 2
			else
				echo "No need test eks cluster"
				shift 1
			fi
		fi
		;;
	--gke_cluster)
		GKE_CLUSTER="$2"
		if [ -n "$GKE_CLUSTER" ]; then
			IFS=":" read -ra parts <<<"$GKE_CLUSTER"
			if [ "${#parts[@]}" -eq 2 ]; then
				gkeProjectId="${parts[0]}"
				gkeClusterId="${parts[1]}"
				shift 2
			else
				echo "No need test gke cluster"
				shift 1
			fi
		fi
		;;
	*)
		echo "Invalid option: $1" >&2
		exit 1
		;;
	esac
done

# If ENV is empty, use the default value "staging"
if [ -z "$ENV" ]; then
	ENV="staging"
fi

export ENV="$ENV"
export API_AK="$API_AK"
export API_SK="$API_SK"

if [ -n "$serverlessProjectId" ] && [ -n "$serverlessClusterId" ]; then
	sh $CUR/test_serverless.sh $serverlessProjectId $serverlessClusterId
fi

if [ -n "$eksProjectId" ] && [ -n "$eksClusterId" ]; then
	sh $CUR/test_eks.sh $eksProjectId $eksClusterId
fi

if [ -n "$gkeProjectId" ] && [ -n "$gkeClusterId" ]; then
	sh $CUR/test_gke.sh $gkeProjectId $gkeClusterId
fi
