#!/bin/bash -l
##
## $Revision$ $Date$
##

# TomEE 7.x is compiled with Java 7
#if [ -d $HOME/jdk7 ]; then
#    export JAVA_HOME=$HOME/jdk7
#fi

PROGNAME=`basename $0`
DIRNAME=`dirname $0`

DEFAULT_WEB="none"
DEFAULT_SQL="active"

warn() {
    echo "${PROGNAME}: $*"
}

die() {
    warn "$*"
    exit 1
}

usage() {
    cat <<EOF
usage: $PROGNAME [options] <test> [<test> ...] [mvn options]

options:
    -h,--help               Display help information
    -w,--web <container>    Specify the container to test with (default: $DEFAULT_WEB)
    -sql <skip|active>      Wether sql databases should be created or not (default: $DEFAULT_SQL)
    -tv,--tomcat-version    Specify the tomcat version (implies -w tomcat)
    -d,--debug              Enable Server and TCK appclient debug options (5005 and 5003)
    -de,--debug-embedded    Enable TCK embedded ejb debug options (port 5001)
    -dh,--debug-harness     Enable TCK harness debug options (port 5002)
    -da,--debug-appclient   Enable TCK appclient debug options (port 5003)
    -dj,--debug-javatest    Enable TCK javatest debug options (port 5004)
    -ds,--debug-server      Enable Server debug options (port 5005)
    --connector             deploy connectors for connector tests
    -j,--jaxrs              build jaxrs tck wars
    -k,--kill               Kill any java tck process that might be running
    --reverse               Generate jaxws jws reverse artifacts
    -o,--option <option>    Enable an option
    -ol,--offline           Run maven offline
    -c,--clean              Mvn clean
    -tr,--temp-repo         Mvn -Dmaven.repo.local=temp
    -U,--update             Mvn update snapshots
    --source                Source a script to change environment settings such as jdk version
    --env                   Print the environment prior to running mvn
    -nc,--no-colors             Do not print in colors
    --                      Stop option processing
EOF
    exit 1
}

if [ $# -lt 1 ]; then
    usage
fi

echo "$(basename $0) $@"

JAVA_HOME=$JAVA_HOME
PATH=$PATH
tests=""
web="$DEFAULT_WEB"
sql="$DEFAULT_SQL"
profile="$DEFAULT_PROFILE"
args=""
options=""
env=""
nc=""
src=""

#tomcatVersion="-Dtomcat.version=6.0.32"

assertOptionArg() {
    if [ "x$2" = "x" ]; then
        die "Option '$1' requires an argument"
    fi
}

appendOption() {
    echo "Including options=$1"
    if [ "x$options" = "x" ]; then
        options="$1"
    else
        options="${options},$1"
    fi
}

appendArgs() {
    if [ "x$args" = "x" ]; then
        args="$*"
    else
        args="$args $*"
    fi
}

appendTests() {
    if [ "x$tests" = "x" ]; then
        tests="$1"
    else
        tests="${tests},$1"
    fi
}

processOptions() {
    while [ "x$1" != "x" ]; do
        case "$1" in
            -sql)
                assertOptionArg $1 $2
                sql=$2
                shift
                ;;

            -h|--help)
                usage
                ;;

            -w|--web)
                assertOptionArg $1 $2
                web="$2"; shift
                ;;

            -tv|--tomcat-version)
		web="tomcat"
                assertOptionArg $1 $2
                tomcatVersion="-Dtomcat.version=$2"; shift
                ;;

            -o|--option)
                assertOptionArg $1 $2
                appendOption "$2"; shift
                ;;

            -d|--debug)
                appendOption "debug"
                appendOption "appclient-debug"
                ;;

            -da|--debug-appclient)
                appendOption "appclient-debug"
                ;;

            -de|--debug-embedded)
                appendOption "embedded-debug"
                ;;

            -dh|--debug-harness)
                appendOption "harness-debug"
                ;;

            -dj|--debug-javatest)
                appendOption "javatest-debug"
                ;;

            -ds|--debug-server)
                appendOption "debug"
                ;;

            --connector)
                appendArgs "-Dconnector=true"
                ;;

            -j|--jaxrs)
                appendArgs "-Djaxrs=true"
                ;;

            --reset-persistence)
                appendArgs "-Dreset.persistence=true"
                ;;

            --interop)
                appendArgs "-Dinterop=true"
                ;;

            --reverse)
                appendArgs "-Dreverse=true"
                ;;

            -ol|--offline)
                appendArgs "-o"
                ;;

            -U|--update)
                appendArgs "-U"
                ;;

            -c|--clean)
                appendArgs "clean install"
                ;;

            -tr|--temp-repo)
                appendArgs "-Dmaven.repo.local=repo"
                ;;

            --source)
                assertOptionArg "$1" "$2"
                src="$(readlink -f "$2")"
                shift
                ;;

            --env)
                env=1
                ;;

            -nc|--no-colors)
                nc=1
                ;;

            -k|--kill)
                killPrevious=1
                ;;

            --)
                shift
                appendArgs "$*"
                break
                ;;

            # Collect extra options to pass on to mvn
            -*)
                appendArgs "$1"
                ;;

            # Non-option args are tests
            *)
                appendTests "$1"
                ;;
        esac
        shift
    done
}

if [ "x$RUNTESTS_OPTIONS" != "x" ]; then
    echo "Including options from environment: $RUNTESTS_OPTIONS"
    processOptions $RUNTESTS_OPTIONS
fi

processOptions "$@"

# Validate web
case "$web" in
    tomee-plus|tomee-plume|tomee|tomcat|none)
        profile="full"
        true
        ;;
    tomcat-web)
        profile="web"
        appendOption "web-profile"
        true
        ;;
    *)
        echo "Unknown web container: $web"
        exit 3
        ;;
esac

rm -fr derbydb
unzip -q derbydb.zip
sql=skip

# Append options if any
if [ "x$options" != "x" ]; then
   appendArgs "-Doptions=$options"
fi

# Make sure a test was selected
if [ "x$tests" = "x" ]; then
    usage
fi

# Pick the mvn executable to use
if [ "x$M2_HOME" = "x" ]; then
     mvn="mvn"
else
    mvn="$M2_HOME/bin/mvn"
fi

if [ -n "$tomcatVersion" ]; then
    ant -f download.xml $tomcatVersion
fi

if [ "$killPrevious" != "" ]; then
    echo "Killing old processes $(ps ax | grep "[j]ava.*$PWD" | cut -c 1-5 )"
    ps ax | grep "[j]ava.*$PWD" | cut -c 1-5 | xargs kill -9
    sleep 5
    ps ax | grep "[j]ava.*$PWD"
fi

if [ -z $nc ]; then
    export BOLD=`tput bold`
    export UNDERLINE_ON=`tput smul`
    export UNDERLINE_OFF=`tput rmul`
    export TEXT_BLACK=`tput setaf 0`
    export TEXT_RED=`tput setaf 1`
    export TEXT_GREEN=`tput setaf 2`
    export TEXT_YELLOW=`tput setaf 3`
    export TEXT_BLUE=`tput setaf 4`
    export TEXT_MAGENTA=`tput setaf 5`
    export TEXT_CYAN=`tput setaf 6`
    export TEXT_WHITE=`tput setaf 7`
    export BACKGROUND_BLACK=`tput setab 0`
    export BACKGROUND_RED=`tput setab 1`
    export BACKGROUND_GREEN=`tput setab 2`
    export BACKGROUND_YELLOW=`tput setab 3`
    export BACKGROUND_BLUE=`tput setab 4`
    export BACKGROUND_MAGENTA=`tput setab 5`
    export BACKGROUND_CYAN=`tput setab 6`
    export BACKGROUND_WHITE=`tput setab 7`
    export RESET_FORMATTING=`tput sgr0`
fi

CONFIG=" -DassemblyId=$web -Dtests=$tests -Djavaee.level=$profile -Dwebcontainer=$web -Dsql=$sql"

echo ">>> config => $( echo "$CONFIG" | sed 's/ /\n/g')"
echo "" # just an empty line

[ ! -z "$src" ] && {
    ls "$src"
    source "$src"
}
[ ! -z $env ] && export

# printing the content of the 2 main directories
egrep 'javaee.(ri|cts).home' ~/.m2/settings.xml | perl -pe 's,^ *|<[^>]+>,,g' | while read n; do echo $n; ls -l $n; done


# Fire up Maven to do the real work
if [ -z $nc ]; then
exec mvn -U -V --file "$DIRNAME/pom.xml" \
      --batch-mode \
      --errors \
      $CONFIG \
      $tomcatVersion \
      $args | sed -e "s/\(\[INFO\]\ \-.*\)/${TEXT_BLUE}${BOLD}\1${RESET_FORMATTING}/g" \
               -e "s/\(\[INFO\]\ BUILD SUCCESS.*\)/${BOLD}${TEXT_GREEN}\1${RESET_FORMATTING}/g" \
               -e "s/\(\[INFO\]\ BUILD FAILURE\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}/g" \
               -e "s/\(\[INFO\]\ .*\ FAILURE\ \[.*s]\)/${TEXT_RED}${BOLD}\1${RESET_FORMATTING}/g" \
               -e "s/\(\[INFO\]\ .*\ SUCCESS\ \[.*s]\)/${TEXT_GREEN}${BOLD}\1${RESET_FORMATTING}/g" \
               -e "s/\(\[INFO\]\ .*\ SKIPPED\)/${TEXT_YELLOW}${BOLD}\1${RESET_FORMATTING}/g" \
               -e "s/\(\[INFO\]\ Building .*\)/${TEXT_CYAN}${BOLD}\1${RESET_FORMATTING}/g" \
               -e "s/\(\[WARNING\].*\)/${BOLD}${TEXT_YELLOW}\1${RESET_FORMATTING}/g" \
               -e "s/\(\[ERROR\].*\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}/g" \
               -e "s/Tests run: \([^,]*\), Failures: \([^,]*\), Errors: \([^,]*\), Skipped: \([^,]*\)/${BOLD}${TEXT_GREEN}Tests run: \1${RESET_FORMATTING}, Failures: ${BOLD}${TEXT_RED}\2${RESET_FORMATTING}, Errors: ${BOLD}${TEXT_RED}\3${RESET_FORMATTING}, Skipped: ${BOLD}${TEXT_YELLOW}\4${RESET_FORMATTING}/g"
else
exec mvn -U -V --file "$DIRNAME/pom.xml" \
      --batch-mode \
      --errors \
      $CONFIG \
      $tomcatVersion \
      $args
fi

# Make sure formatting is reset
echo -ne ${RESET_FORMATTING}
