#!/usr/bin/env bash

set -o errexit -o nounset -o pipefail -o verbose

CURRENT_DIR="$(cd "$(dirname "$0")"; pwd -P)"
SUPPORT_DIR="${CURRENT_DIR}/.."

: "${USERNAME:?"Environment variable 'USERNAME' must be set to the username of the 'Mesos DockerBot' Docker hub account."}"
: "${PASSWORD:?"Environment variable 'PASSWORD' must be set to the password of the 'Mesos DockerBot' Docker hub account."}"

DOCKER_IMAGE=${DOCKER_IMAGE:-"mesos/mesos-mini"}
DOCKER_IMAGE_DISTRO=${DOCKER_IMAGE_DISTRO:-"mesos/mesos-centos"}

MESOS_SHA=${MESOS_SHA:-$(git rev-parse HEAD)}
MESOS_TAG_OR_SHA=$(git describe --exact-match "${MESOS_SHA}" 2>/dev/null || echo "${MESOS_SHA}")
CURRENT_BRANCHES=$(git branch --points-at HEAD -r)
RELEASE_BRANCH=$(echo "${CURRENT_BRANCHES}" | grep -E 'origin/[0-9]*\.[0-9]*\.x' | grep -E -o '[0-9]*\.[0-9]*\.x' || true)

if [ -z "${RELEASE_BRANCH}" ]; then
  RELEASE_BRANCH="master"
fi

DATE=$(date +%F)

if [[ "${MESOS_TAG_OR_SHA}" != "${MESOS_SHA}" ]]; then
  # HEAD is also a tag.
  DOCKER_IMAGE_TAG="${MESOS_TAG_OR_SHA}"
  DOCKER_IMAGE_LATEST_TAG=""
else
  DOCKER_IMAGE_TAG="${RELEASE_BRANCH}-${DATE}"
  DOCKER_IMAGE_LATEST_TAG="${RELEASE_BRANCH}"
fi

echo "MESOS_SHA=${MESOS_SHA}"
echo "RELEASE_BRANCH=${RELEASE_BRANCH}"
echo "DOCKER_IMAGE_TAG=${DOCKER_IMAGE_TAG}"

function cleanup {
  docker rmi "${DOCKER_IMAGE}:${DOCKER_IMAGE_LATEST_TAG}" || true
  docker rmi "${DOCKER_IMAGE}:${DOCKER_IMAGE_TAG}" || true
  docker rmi "${DOCKER_IMAGE_DISTRO}:${DOCKER_IMAGE_TAG}" || true
}

trap cleanup EXIT

DOCKER_IMAGE=${DOCKER_IMAGE} \
DOCKER_IMAGE_TAG=${DOCKER_IMAGE_TAG} \
DOCKER_IMAGE_DISTRO=${DOCKER_IMAGE_DISTRO} \
"${SUPPORT_DIR}/mesos-mini/build.sh"

docker login -u "${USERNAME}" -p "${PASSWORD}"
docker push "${DOCKER_IMAGE}:${DOCKER_IMAGE_TAG}"

if [ ! -z "${DOCKER_IMAGE_LATEST_TAG}" ]; then
  docker tag "${DOCKER_IMAGE}:${DOCKER_IMAGE_TAG}" "${DOCKER_IMAGE}:${DOCKER_IMAGE_LATEST_TAG}"
  docker push "${DOCKER_IMAGE}:${DOCKER_IMAGE_LATEST_TAG}"
fi
