#!/bin/bash
release_prefix="$1"
GITHUB_REPOSITORY="$2"
GITHUB_TOKEN="$3"
OWNER=${GITHUB_REPOSITORY%%/*}
OWNER_LOWER=$(echo "$OWNER" | tr '[:upper:]' '[:lower:]')
REPO=${GITHUB_REPOSITORY##*/}
REPO_LOWER=$(echo "$REPO" | tr '[:upper:]' '[:lower:]')
PACKAGE="$OWNER_LOWER/$REPO_LOWER"
GITROOT="`dirname $0`/.."
DOCKERDIR="${GITROOT}/docker"
DOCKERFILE="$DOCKERDIR/Dockerfile"
if [ "${release_prefix}" = "" ]; then
  SET_LATEST=1
  release_prefix="docker-11-"
fi
pushd "${DOCKERDIR}"
RELEASE_TAR_GZ_FILENAME=$( ${GITROOT}/configuration/github-download-release-assets.sh "${GITHUB_TOKEN}" "${release_prefix}" "${GITHUB_REPOSITORY}" )
if [ "${RELEASE_TAR_GZ_FILENAME}" = "" ]; then
  echo "No release with prefix ${release_prefix} found" >&2
else
  release=$( echo ${RELEASE_TAR_GZ_FILENAME} | sed -e 's/\.tar\.gz//' )
  echo Release is ${release}
  echo "Copying files from GITROOT $GITROOT into Docker workspace"
  cp "$GITROOT/java/target/env.sh" "$DOCKERDIR"
  cp "$GITROOT/java/target/start" "$DOCKERDIR"
  cp "$GITROOT/java/target/configuration/JavaSE-11.profile" "$DOCKERDIR"
  cd "$DOCKERDIR"
  docker build --build-arg RELEASE=${release} -t ghcr.io/${PACKAGE}:${release} -f Dockerfile_sapsailing_on_sapmachine11 .
  echo "Cleaning up..."
  rm start env.sh JavaSE-11.profile ${RELEASE_TAR_GZ_FILENAME} release-notes.txt
  docker push ghcr.io/${PACKAGE}:${release}
  if [ "$SET_LATEST" = "1" ]; then
    docker tag ghcr.io/${PACKAGE}:${release} ghcr.io/${PACKAGE}:latest-11
    docker push ghcr.io/${PACKAGE}:latest-11
  fi
fi
popd
