#!/bin/bash

# Usage:
#
#   ./deploy.sh [server-version] [web-version]
set -eu

sgeV=${1-latest}
gfV=${2-latest}

sgeImg="asia-east2-docker.pkg.dev/gcp-digital-infra/internal-tools/sge-server-linux-amd64"
gfImg="asia-east2-docker.pkg.dev/gcp-digital-infra/internal-tools/gf-server-linux-amd64"

DIR=`dirname $0`

echo "====> Start deploying all-server..."
echo "====> SERVER_VERSION: $sgeV"
echo "====> WEB_VERSION: $gfV"

# pre pull
echo "====> Start pre pulling images..."
docker pull ${sgeImg}:${sgeV}
docker pull ${gfImg}:${gfV}

if [ -f "${DIR}/CURRENT_DEPLOY" ]; then
  echo "====> Current deploy with: "
  cat ${DIR}/CURRENT_DEPLOY | while read line
  do
    echo $line
  done
fi

# if running, then stop it
isSgeServer=`docker ps -a -q -f name="sge-server"`
isGfServer=`docker ps -a -q -f name="gf-server"`
if [ -n "$isSgeServer" ]; then
  echo "====> Stop running sge..."
  docker compose -f ./sge-server.yml -f ./gf-server.yml  down
fi

if [ -n "$isGfServer" ]; then
  echo "====> Stop running gf..."
  docker compose -f ./sge-server.yml -f ./gf-server.yml  down
fi

echo "SERVER_VERSION=${sgeV}" > .env
echo "WEB_VERSION=${gfV}" >> .env

# run
echo "====> Deploy new sge and gf..."
docker compose -f ./sge-server.yml -f ./gf-server.yml up -d

echo "${DIR}/deploy.sh ${sgeV} ${gfV}" > CURRENT_DEPLOY