#!/bin/bash

DOCKER_REPOSITORY="nexus3.onap.org:10003"
SEARCH="aai-service";
DATETIME_STAMP=$(date +%Y%m%dT%H%M%S);
VERSION_FILE="version.properties"

# Check for the version file
# If it exists, load the version from that file
# If not found, then use the current version as 1.1.0 for docker images
if [ -f "$VERSION_FILE" ]; then
    source $VERSION_FILE;
    VERSION=$release_version;
else
    VERSION=1.1.0;
fi

RELEASE_VERSION_REGEX="^[0-9]+\.[0-9]+\.[0-9]+$";

SNAPSHOT_TAG=${VERSION}-SNAPSHOT-${DATETIME_STAMP};
STAGING_TAG=${VERSION}-STAGING-${DATETIME_STAMP};

if [[ $PROJECT =~ $SEARCH ]] ; then

    REPO_PATH=$DOCKER_REPOSITORY/openecomp/ajsc-aai;

    docker tag $REPO_PATH:latest $REPO_PATH:$STAGING_TAG;
    docker tag $REPO_PATH:latest $REPO_PATH:$SNAPSHOT_TAG;

    if [[ "$VERSION" =~ $RELEASE_VERSION_REGEX ]]; then
        STRIPPED_RELEASE=$(echo $VERSION | cut -d"." -f1,2);
        docker tag $REPO_PATH:latest $REPO_PATH:${STRIPPED_RELEASE}-STAGING-latest;
        docker push $REPO_PATH:${STRIPPED_RELEASE}-STAGING-latest;
    else
        docker push $REPO_PATH:latest;
    fi

    docker push $REPO_PATH:$STAGING_TAG;
    docker push $REPO_PATH:$SNAPSHOT_TAG;
else
    # Cut the prefix aai/ in example aai/model-loader
    DOCKER_REPO_NAME=$(echo ${PROJECT} | cut -d"/" -f2-);

    REPO_PATH=$DOCKER_REPOSITORY/openecomp/${DOCKER_REPO_NAME};

    docker tag $REPO_PATH:latest $REPO_PATH:$STAGING_TAG;
    docker tag $REPO_PATH:latest $REPO_PATH:$SNAPSHOT_TAG;

    if [[ "$VERSION" =~ $RELEASE_VERSION_REGEX ]]; then
        STRIPPED_RELEASE=$(echo $VERSION | cut -d"." -f1,2);
        docker tag $REPO_PATH:latest $REPO_PATH:${STRIPPED_RELEASE}-STAGING-latest;
        docker push $REPO_PATH:${STRIPPED_RELEASE}-STAGING-latest;
    else
        docker push $REPO_PATH:latest;
    fi

    docker push $REPO_PATH:$SNAPSHOT_TAG;
    docker push $REPO_PATH:$STAGING_TAG;
fi
