#!/usr/bin/env bash
#
# blame(ken)
#
# this runs "mvn clean install" with appropriate environment, params, AWS credentials, etc...

set -e          # raise exception if error
set -u          # raise exception if unset
set -o pipefail # raise exceptions in pipes

BASENAME=$(basename $0)
WORKDIR=$(cd $(dirname $0);pwd -P;)
cd $WORKDIR

unset   AWS_SECURITY_TOKEN \
        AWS_SESSION_TOKEN \
        AWS_ACCESS_KEY \
        AWS_SECRET_KEY \
        AWS_ACCESS_KEY_ID \
        AWS_SECRET_ACCESS_KEY \
        AWS_SHARED_CREDENTIALS_FILE \
        AWS_CREDENTIAL_PROFILES_FILE

export  AWS_CREDENTIAL_PROFILES_FILE=$WORKDIR/aws-credentials \
        SPRING_PROFILES_ACTIVE=test \
        AWS_REGION=us-east-1


# This project requires Java 17.  Test for, and switch to that version if possible.

if [[ -n ${JAVA_HOME_17-} ]];  then
    _java="$JAVA_HOME_17/bin/java"
    export JAVA_HOME=$(echo $JAVA_HOME_17)
elif [[ -n ${JAVA_HOME-} ]] && [[ -x "$JAVA_HOME/bin/java" ]];  then
    _java="$JAVA_HOME/bin/java"
elif [[ -n $(type -p java) ]]; then
    _java=java
else
    echo "Missing Java!  Set JAVA_HOME_17 environment variable to the path to a v17 JDK."
    exit 1
fi

version=$("$_java" -version 2>&1 | awk -F '"' '/version/ {print $2}')
    
if [[ "$version" < "17" ]]; then
    echo "This project requires Java 17, but the current JDK version is $version"
    echo "Set JAVA_HOME_17 (preferred) or JAVA_HOME to the directory of a v17 JDK."
    exit 1
fi


# Warn if additional maven arguments were passed from the command line.

[[ $# -gt 0 ]] && {
        echo "WARN: Passing Maven options: $@" >&2
}


# Excecute a Maven clean install

./mvnw clean install $@
