#!/bin/sh
# JSPM CMD startup script

# Some variables
result_ok=0
bootstrap_fail=128
bootstrap_need=4
continueCommand=continue

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 bootstrap directory
rootdir=`dirname "$0"`
if [ "X$rootdir" = "X." -o -z "$rootdir" ] ; then
  rootdir=`pwd`
fi
cd $rootdir

useParentJVM=

# 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"
  useParentJVM=-useParentJVM
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 [ -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

# Update JSPM and sync local copy of SAPJVM. Bootstraping
$java_cmd -ea -cp $rootdir/bootstrap/lib/sdt_jspm_bootstrap.jar Jspm -boot=$platform
if [ $? != 0 ] ; then
    echo ERROR: could not update JSPM
    exit $bootstrap_fail
fi

# Start JSPM command-line
$local_java -ea -Xmx1024m -cp $rootdir/lib/sdt_jspm_cmd.jar com.sap.sdt.jspm.cmd.main.JSPMCmd $useParentJVM $*
returnCode=$?
if [ $returnCode != $bootstrap_need ] ; then
 exit $returnCode
fi

while [ 1 == 1 ]
do
  # Update JSPM. Bootstraping
  echo Restarting JSPM...
  $java_cmd -ea -cp $rootdir/bootstrap/lib/sdt_jspm_bootstrap.jar Jspm -boot=$platform -restart $useParentJVM
  if [ $? != 0 ] ; then
      echo ERROR: could not update JSPM
      exit $bootstrap_fail
  fi

  # Start JSPM command-line
  $local_java -ea -Xmx1024m -cp $rootdir/lib/sdt_jspm_cmd.jar com.sap.sdt.jspm.cmd.main.JSPMCmd $continueCommand $useParentJVM $*
  returnCode=$?
  if [ $returnCode != $bootstrap_need ] ; then
    exit $returnCode
  fi
done
