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

: "${TF_MODULE_DIR:?}"
: "${CLOUD:?}"

case "$CLOUD" in
  aws)
    TF_MODULE_DIR="$TF_MODULE_DIR" "$(dirname "$0")/smoke-test.sh"
    ;;
  gcp)
    instance_name="$(terraform -chdir="$TF_MODULE_DIR" output -json instance | jq -r '.name')"
    GCP_PROJECT_ID="${GCP_PROJECT_ID:?}" GCP_ZONE="${GCP_ZONE:?}" \
      INSTANCE_NAME="$instance_name" "$(dirname "$0")/wait-for-gcp-bootstrap.sh"
    echo "GCP bootstrap seed and private-service startup checks passed."
    ;;
  azure)
    vm_id="$(terraform -chdir="$TF_MODULE_DIR" output -json instance | jq -r '.id')"
    AZURE_SUBSCRIPTION_ID="${AZURE_SUBSCRIPTION_ID:?}" VM_ID="$vm_id" \
      "$(dirname "$0")/wait-for-azure-bootstrap.sh"
    echo "Azure bootstrap seed and private-service startup checks passed."
    ;;
  alicloud)
    instance_id="$(terraform -chdir="$TF_MODULE_DIR" output -json instance | jq -r '.id')"
    ALICLOUD_PROFILE="${ALICLOUD_PROFILE:?}" ALICLOUD_REGION="${ALICLOUD_REGION:?}" \
      INSTANCE_ID="$instance_id" "$(dirname "$0")/wait-for-alicloud-bootstrap.sh"
    echo "Alibaba Cloud bootstrap seed and private-service startup checks passed."
    ;;
  *)
    echo "Unsupported cloud: $CLOUD" >&2
    exit 2
    ;;
esac
