#!/bin/bash
### check argument count ###
if [ $# -eq 0 ]
then
   echo "Error: Argument missing. Use '-h' for help."
   exit
fi

# find JRE_HOME
UNAME=$(uname)
case "$UNAME" in
Linux)
    JRE_HOME="$(echo $JAVA_HOME)"
    if [ -z "$JRE_HOME" ]
    then
        echo "variable JAVA_HOME is not set"
        JRE_HOME="$(dirname $(dirname $(readlink -f $(which java))))"
    fi
    ;;
Darwin)
    JAVA_DIR="$(dirname $(readlink $(which java)))"
    if [ -f "$JAVA_DIR/java_home" ]
    then
        JRE_HOME=$($JAVA_DIR/java_home)
    else
        JRE_HOME="$(readlink $JAVA_DIR)"/../
    fi
    ;;
esac

if [ -d "$JRE_HOME/jre" ]
then
        JRE_HOME="$JRE_HOME/jre"
fi

# find java
if [ -f "$JRE_HOME/bin/java" ]
then
    JAVA="$JRE_HOME/bin/java"
else
    JAVA=java
fi

### find location of script file ###
pushd . > /dev/null
SCRIPT_PATH="${BASH_SOURCE[0]}";
    while([ -h "${SCRIPT_PATH}" ]) do
        cd "`dirname "${SCRIPT_PATH}"`"
        SCRIPT_PATH="$(readlink "`basename "${SCRIPT_PATH}"`")";
    done
cd "`dirname "${SCRIPT_PATH}"`" > /dev/null
SCRIPT_PATH="`pwd`";
popd > /dev/null
#echo "script=[${SCRIPT_PATH}]"
###

em_path=`echo "${SCRIPT_PATH}/em-cli.jar"`
#echo "em_path=[${em_path}]"

current_path=`pwd`
current_emulmgr="$current_path/em-cli.jar"

export COLUMNS="$[$(tput cols)]"

# (W/A) In java 9, JAXB module should be added in run time.
# But this is a temporary workaround because eventually
# modules that are not resolved by default such as a JAXB
# could be removed from the JDK.

# From java 11, JAXB-RI modules are provided along with Tizen Studio as those are removed from JDK. Please refer to JDK 11 release notes.
# Changed JRE options to pick JAXB from jaxb-ri instead of JDK 
if [ -f "$current_emulmgr" ]
then
"$JAVA" --module-path="$SCRIPT_PATH/../../../library/jaxb-ri/" --add-modules=ALL-MODULE-PATH -XX:+IgnoreUnrecognizedVMOptions -jar "$current_emulmgr" "$@"
else
"$JAVA" --module-path="$SCRIPT_PATH/../../../library/jaxb-ri/" --add-modules=ALL-MODULE-PATH -XX:+IgnoreUnrecognizedVMOptions -jar "$em_path" "$@"
fi
