#!/bin/bash
# SeokYeon Hwang <syeon.hwang@samsung.com>

BOOTCLASSPATH=""
CLASSPATH=""

# find directory of script file
SCRIPT_DIR="$(cd "$(dirname "$0")" ; pwd -P)"

# find current directory
CURRENT_DIR="$(pwd -P)"

# find ECP binary in current dir first
JAR_BINARY="emulator-control-panel.jar"
if [ -f "$CURRENT_DIR/$JAR_BINARY" ]
then
    JAR_PATH="$CURRENT_DIR/$JAR_BINARY"
elif [ -f "$SCRIPT_DIR/$JAR_BINARY" ]
then
    JAR_PATH="$SCRIPT_DIR/$JAR_BINARY"
else
    echo "Can not find $JAR_BINARY"
    exit
fi


# find JRE_HOME
UNAME=$(uname)
case "$UNAME" in
Linux)
    JRE_HOME="$(dirname $(dirname $(readlink -f $(which java))))"
    ;;
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
    ;;
MINGW*)
    echo "Please execute \"emulator-control-panel.exe\""
    exit
    ;;
esac

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

# find jfxrt.jar
JFXRT_JAR="jfxrt.jar"
JFXRT_PATH="$JRE_HOME/lib/ext/$JFXRT_JAR"
if [ -f "$JFXRT_PATH" ]
then
    # java 8 or above
    # we have nothing to do
    :
else
    JFXRT_PATH="$JRE_HOME/lib/$JFXRT_JAR"
    if [ -f "$JFXRT_PATH" ]
    then
        # java 7u6 or above
        # use JRE providing one
        BOOTCLASSPATH="$BOOTCLASSPATH:$JFXRT_PATH"
    else
        # java 7u5 or below
        # try to run with our own
        JFXRT_PATH="$SCRIPT_DIR/$JFXRT_JAR"
        if [ -f "$JFXRT_PATH" ]
        then
            CLASSPATH="$CLASSPATH:$JFXRT_PATH"
        fi
    fi
fi

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

USE_SYSTEM_PROXY=-Djava.net.useSystemProxies=true
# parse jvm options
JVM_OPTS=( )
i=0
ECP_OPTS=( )
j=0
for arg in "$@"
do
    case $arg in
        "-"*)
        JVM_OPTS[$i]="$arg"
        shift
        i=$((i+1))
        ;;
        *)
        ECP_OPTS[$j]="$arg"
        shift
        j=$((j+1))
        ;;
    esac
done

# run
$JAVA -Xbootclasspath/a:"$BOOTCLASSPATH" -cp "$CLASSPATH" $USE_SYSTEM_PROXY ${JVM_OPTS[@]} -jar "$JAR_PATH" ${ECP_OPTS[@]}
