#!/bin/bash
set -exo pipefail

args=$1

function wait_for_stack_deleted() {
  local stack_id=$1
  while true; do
    status=$(aliyun ros DescribeStacks --StackId "$stack_id" | jq -r '.Stacks[0].Status')
    echo "Current stack status: $status"
    if [[ "$status" == "DELETE_COMPLETE" ]]; then
      break
    elif [[ "$status" == "DELETE_FAILED" ]]; then
      echo "Failed to delete stack with status: $status"
      exit 1
    fi
    sleep 30
  done
}

k8sName=$(echo "$args" | yq ".k8s.name")
region=$(echo "$args" | yq ".region.region")
templateFile=$(echo "$args" | yq '.k8s.templatePath')
echo "k8sName=$k8sName"
echo "region=$region"
echo "templateFile=$templateFile"

stack_id=$(aliyun ros ListStacks --StackName.1 "$k8sName" | jq -r '.Stacks[0].StackId // ""')
if [[ -n "$stack_id" ]]; then
  aliyun ros DeleteStack --StackId "$stack_id"
  wait_for_stack_deleted $stack_id
fi

