#!/usr/bin/env bash
RED='\033[0;31m'
GRN='\033[0;32m'
ORNG='\033[0;33m'
NC='\033[0m' # No Color
stack="matsStack"
if [ $# -eq 1 ]; then
    stack=$1
fi
stacks=($(docker stack ls | grep -v NAME | awk '{print $1}'))
if [[ " ${stacks[*]} " == *" $stack "* ]]; then
    echo -e "${GRN}undeploying stack $stack${NC}"
else
    echo -e "${RED}stack ${stack} doesn't exist. These stacks currently exist... \"${stacks[@]}\"?${NC}"
    exit 1
fi
docker stack rm ${stack}
docker network rm web
limit=20
until [ -z "$(docker service ls --filter label=com.docker.stack.namespace=${stack} -q)" ] || [ "$limit" -lt 0 ]; do
    sleep 1;
    limit="$((limit-1))"
    printf "${GRN}.${NC}"
done
limit=20
until [ -z "$(docker network ls --filter label=com.docker.stack.namespace=web -q)" ] || [ "$limit" -lt 0 ]; do
    sleep 1;
    limit="$((limit-1))"
    printf "${GRN}.${NC}"
done
limit=20
until [ -z "$(docker stack ps ${stack} -q)" ] || [ "$limit" -lt 0 ]; do
    sleep 1;
    limit="$((limit-1))"
    printf "${GRN}.${NC}"
done
echo -e "${ORNG}please be patient!!${NC}"
docker system prune -af
docker swarm leave --force
