#!/bin/bash

set -x
set -e

EXPECTED_ARGS=3
E_BADARGS=65
CURRENT_DIR="$(pwd -P)"


DOCKER_VERSION=v1.1.0
AGENT_TAG=v1.1.0
IMAGE_NAME=server

if [ $# -lt $EXPECTED_ARGS ]
then
  echo "Usage: $0 <version>"
  exit $E_BADARGS
fi

while [ $# -gt 0 ]; do
  case "$1" in
    --DOCKER_VERSION=*)
      DOCKER_VERSION="${1#*=}"
      ;;
    --AGENT_TAG=*)
      AGENT_TAG="${1#*=}"
      ;;
    --IMAGE_NAME=*)
      IMAGE_NAME="${1#*=}"
      ;;
    *)
      printf "***************************\n"
      printf "* Error: Invalid argument.*\n"
      printf "***************************\n"
      exit 1
  esac
  shift
done

ROOT_FOLDER="$(
  cd "$(dirname "$0")" || exit
  cd ../..
  pwd -P
)"

sed -i -E "s/agent.version=[0-9]+.[0-9].+[0-9]+/agent.version=$DOCKER_VERSION/g" agent/src/main/resources/agent.properties
sed -i -E "s/currentAgentVersion = \"[0-9]+.[0-9].+[0-9]+\"/currentAgentVersion = \"$DOCKER_VERSION\"/g" server/src/main/java/com/testsigma/dto/AgentDTO.java

cd "$ROOT_FOLDER" || exit 1

sh $ROOT_FOLDER/deploy/compile.sh --UI_BUILD_CONF=docker --LOCAL_AGENT_TAG=$AGENT_TAG

echo "Starting build..."
docker buildx build --platform linux/amd64,linux/arm64/v8 -t testsigmahq/$IMAGE_NAME:$DOCKER_VERSION -f $ROOT_FOLDER/Dockerfile --push .

cd $CURRENT_DIR