#!/bin/bash

usage() {
    me=`basename "$0"`
    echo >&2 "Usage: $me [--help] [--update-latest] [--registry REGISTRY] --tag TAG [IMAGE]"
    exit 1
}

UPDATE_LATEST=false

while test $# -gt 0 ; do
  case "$1" in
  --help)
    usage
    ;;
  --update-latest)
    UPDATE_LATEST=true
    shift
    ;;
  --registry)
    shift
    REGISTRY=$1
    shift
    ;;
  --tag)
    shift
    TAG=$1
    shift
    ;;
  *)
    break
  esac
done

if test -z "$TAG"; then
  echo "No tag was provided."
  echo "Use either the --tag option or provide a TAG-environment variable."
  usage
fi

#Get list of images
source container-images/publish_list
IMAGES=$(get_image_list)

test -n "$REGISTRY" && [[ "$REGISTRY" != */ ]] && REGISTRY="$REGISTRY/"

publish_image(){
  IMAGE=$1
  if test "$UPDATE_LATEST" = "true" ; then
    docker image tag k8sgerrit/$IMAGE:$TAG ${REGISTRY}k8sgerrit/$IMAGE:latest
    docker push ${REGISTRY}k8sgerrit/$IMAGE:latest
  fi

  docker image tag k8sgerrit/$IMAGE:$TAG ${REGISTRY}k8sgerrit/$IMAGE:$TAG
  docker push ${REGISTRY}k8sgerrit/$IMAGE:$TAG
}

if test $# -eq 0 ; then
  for IMAGE in $IMAGES; do
    publish_image $IMAGE
  done
else
  while test $# -gt 0 ; do
    publish_image $1
    shift
  done
fi
