#!/bin/bash
#-------------------------------------------------------------------------------
#   System Test Coordinator
#-------------------------------------------------------------------------------

# If specifiy another env init script, load it.
params=()
index=0
for i in $@; do
    key=`echo $i | awk -F '=' '{print $1}'`
    if [ "$key" == "-ENV_DEFAULT" ]; then
	val=`echo $i | awk -F '=' '{print $2}'`
	source $val
    else
	params[$index]=$i
	let index+=1
    fi
done

. $ONOS_ROOT/tools/build/envDefaults

VER=${STC_VERSION:-2.5}
MVN_JAR=org/onosproject/onos-stc/$VER/onos-stc-$VER.jar
JAR=${MAVEN_REPO:-$HOME/.m2/repository}/$MVN_JAR
SCENARIOS=$ONOS_ROOT/tools/test/scenarios

# Download the STC binary if needed
if [ ! -f $JAR ]; then
    printf "Downloading STC binary..."
    mkdir -p /tmp/stc $(dirname $JAR)
    curl http://repo1.maven.org/maven2/$MVN_JAR > $JAR
    [ -f $JAR ] && printf "Done.\n"
fi

DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=y"

scenario=${params[0]:-smoke}

if [ $scenario != "-?" -a $scenario != "-h" -a $scenario != "--help" ]; then
    [ ! -f $scenario ] && scenario=$SCENARIOS/$scenario
    [ ! -f $scenario ] && scenario=$scenario.xml
    [ ! -f $scenario ] && echo "Scenario $scenario file not found" && exit 1
fi

# Remove the test name from the list of parameters, if one is specified
[ $# -ge 1 ] && shift

# If stcColor is not set, we will enable color if this is an interactive session
[ -t 1 ] && interactive=true || interactive=false
[ -t 1 ] && notInteractive=false || notInteractive=true

# Run stc
[ -z "$stcDebug" ] && DEBUG_OPTS=""
stcTitle=${stcTitle:-} stcColor=${stcColor:-$interactive} stcDumpLogs=${stcDumpLogs:-$notInteractive} \
    java $DEBUG_OPTS -jar $JAR $scenario "${params[*]}"
