#!/bin/sh
# JSPM startup script

if [ `uname | grep 'OS400' | wc -l` = 0 ]; then
    # default platform is UNIX
    platform='unx'  
else
    platform='os4'
fi

#  Check correct user
if [ "$platform" != 'os4' ]; then
  if [ `whoami | cut -c 4-6` != 'adm' ]; then
    if [ `id | awk '{print $1}' | grep 'adm' | wc -l` = 0 ]; then
      echo 'You must be <sid>adm to start this script !'
      exit 5
    fi
  fi
else
  # OS4: bear in mind that we do not have 'whoami' and 'awk' in qshell...
  if [ `id | grep -i '(...ADM) gid' | wc -l` = 0 ]; then
    echo 'You must be <SID>ADM to start this script !'
    exit 5
  fi
fi

# Determine JSPM directory
rootdir=`dirname "$0"`
if [ "X$rootdir" = "X." -o -z "$rootdir" ] ; then
  rootdir=`pwd`
fi
cd $rootdir
cd ..
rootdir=`pwd`

# Determine java executable
if [ -n "$JSPM_JAVA_HOME" -a -f $JSPM_JAVA_HOME/bin/java ] ; then
  java_cmd="$JSPM_JAVA_HOME/bin/java"
  local_java="$JSPM_JAVA_HOME/bin/java"
else
	if [ -f /usr/sap/EPP/J00/exe/sapjvm_6/bin/java ] ; then
	    java_cmd="/usr/sap/EPP/J00/exe/sapjvm_6/bin/java"
	elif [ -n "$JAVA_HOME" -a -f $JAVA_HOME/bin/java ] ; then
	    java_cmd="$JAVA_HOME/bin/java"
	else
	    echo "WARNING Variable JAVA_HOME not set, trying to launch java from current PATH"
	    java_cmd=java
	fi
	
	if [ -f $rootdir/sapjvm/jre/bin/java ] ; then
	    local_java=$rootdir/sapjvm/jre/bin/java
	else
	    local_java=$java_cmd
	fi
fi

# Start JSPM
JSPM_CONFIG="jspm_config.txt"

if [ "$1" = '-remoteui' ] || [ "$2" = '-remoteui' ] ; then
    JSPM_CONFIG="jspm-rui_config.txt" 
fi

if [ "$platform" != 'os4' ]; then
    $local_java -ea -Duser.dir=$rootdir -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:MaxPermSize=128m -cp $rootdir/lib/sdt_jspm.jar com.sap.sdt.jspm.main.Jspm -rootdir=$rootdir -tracelevel=FINEST run JSPM -properties=$JSPM_CONFIG $*
else
    # submit or not ?
    if [ "$1" = '-nosubmit' ] || [ "$2" = '-nosubmit' ] ; then
        submit=false
        label="JSPM process will be started."
    else
        submit=true
        label="JSPM process will be submitted."
    fi

    # start GUI ?
    if [ "" = "$DISPLAY" ] ; then
        JSPM_CONFIG="jspm-rui_config.txt" 
    fi

    # start JSPM
    echo ""
    echo $label
    echo ""
    if [ "jspm-rui_config.txt" = "$JSPM_CONFIG" ] ; then
        echo "Go to http://<host>:5<instance_number>19 and choose Start JSPM Frontend (SDTGui) to connect to the GUI Server."
    fi

    if [ "$submit" = 'true' ]; then
        export QIBM_MULTI_THREADED=Y
        system -e "SBMJOB CMD(QSH CMD('$local_java -ea -Duser.dir=$rootdir -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:MaxPermSize=128m -cp $rootdir/lib/sdt_jspm.jar com.sap.sdt.jspm.main.Jspm -rootdir=$rootdir -tracelevel=FINEST run JSPM -properties=$JSPM_CONFIG $*')) JOB(JSPM) JOBD(R3"$SAPSYSTEMNAME"400/R3_$SAPSYSTEM_MAIN) CPYENVVAR(*YES) ALWMLTTHD(*YES) USER($USER)"
    else
        $local_java -ea -Duser.dir=$rootdir -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:MaxPermSize=128m -cp $rootdir/lib/sdt_jspm.jar com.sap.sdt.jspm.main.Jspm -rootdir=$rootdir -tracelevel=FINEST run JSPM -properties=$JSPM_CONFIG $*
    fi
fi

returnCode=$?
exit $returnCode