#!/bin/bash

function cleanup() {
    tput cnorm
}

trap cleanup EXIT

tput civis
spinner()
{
    local pid=$!
    local delay=0.5
    local spinstr='|/-\'
    while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
        local temp=${spinstr#?}
        printf " [%c]  " "$spinstr"
        local spinstr=$temp${spinstr%"$temp"}
        sleep $delay
        printf "\b\b\b\b\b\b"
    done
    printf "\b\b\b\b\n"
}

if [[ "$(docker images -q  us-central1-docker.pkg.dev/genuine-flight-317411/devel/robusta-cli 2> /dev/null)" == "" ]]; then
  echo 'Please wait'
  docker pull us-central1-docker.pkg.dev/genuine-flight-317411/devel/robusta-cli > /dev/null 2>&1 & spinner
fi

COMMANDS=$@
if [[ -z "$COMMANDS" ]]; then
   COMMANDS="--help"
fi

if [[ "upgrade-cli" == "$COMMANDS" ]]; then
  docker pull us-central1-docker.pkg.dev/genuine-flight-317411/devel/robusta-cli > /dev/null 2>&1 & spinner
  echo 'Upgrade complete'
  docker run -it --rm --net host -v ~/.aws:/root/.aws -v ~/.config/gcloud:/root/.config/gcloud -v ${PWD}:/workingdir -w=/workingdir -v ~/.kube:/root/.kube us-central1-docker.pkg.dev/genuine-flight-317411/devel/robusta-cli version
  exit 0
fi

docker run -it --rm --net host -v ~/.aws:/root/.aws -v ~/.config/gcloud:/root/.config/gcloud -v ${PWD}:/workingdir -w=/workingdir -v ~/.kube:/root/.kube us-central1-docker.pkg.dev/genuine-flight-317411/devel/robusta-cli $COMMANDS
