#!/bin/sh
#
VERSION='$Id: sesam_gui,v 1.26 2014/04/31 07:09:43 sesam Exp $'
VERBOSE="0"
LOGLEVEL="2"
LOOK="system"
RMIPORT="11401"
SHOWVERSION=""
#
# READ INI
read_ini()
{
  SM_INI=`grep -i '^sm_ini=' /etc/sesam2000.ini 2>/dev/null|cut -d"=" -f2`
  echo `grep -i "^$1=" "$SM_INI" 2>/dev/null|cut -d"=" -f2-`
}
#
#
# VERBOSE


gv_ro_bin=`read_ini gv_ro_bin`
exec ${gv_ro_bin}/sm_java client $*

#### TODO Remove old code



my_echo()
{
  [ "$VERBOSE" -gt "0" ] && echo $*
}
#
# GUI SUBROUTINE  

usage()
{
echo "sesam_gui  -S <Server> -f <JAR> -r <lang> -A <direct>"
echo "           -S <Sesam server>     Server to connect to"
echo "           -f <jar file>         JAR to use"
echo "           -r <de|en>            language selection"
echo "           -p <rmi port>         port of RMI server"
echo "           -v <0-7>              verbose level"
echo "           -A <0|1>              switch on direct DB access"
echo "           -X <0|1>              enable global exception handler"
echo "           -V                    show Sesam RMI version"
}



show_version()
{
  cd ${GV_RO_GUI}
  MY_CMD="de.sep.sesam.gui.common.Brand"
  java -version
  java -classpath $SMJAR $MY_CMD
}

sub_gui()
{
  [ "$VERBOSE" -gt  "1" ] && LOGLEVEL='7'
  [ "$VERBOSE" -gt  "2" ] && v='-verbose'
  my_echo "Using RMI port : $RMIPORT"
  

  JAVA_CHECK=`java -version 2>&1 | grep 1.[78]`
  if [ "$JAVA_CHECK" = "" ]
  then
    echo "FAIL: No Java VM >= 1.7. found !"
    exit 1
  fi

  if [ -z "$SERVER" ];then
      my_echo "Read Sesam Server name from INI file"
      SERVER=`read_ini gv_server`
      if [ -z "$SERVER" ];then
         echo "ERROR: Sesam Server not set. Exiting ..."
         exit 2
      fi
      SERVER="-S $SERVER"
  fi

  if [ -z "$GUI_LANG" ] 
    then
      my_echo "Read language from INI file"
      GUI_LANG=`read_ini lang`
    fi 
    GUI_LANG=${GUI_LANG:=en}
    my_echo "Language set to: $GUI_LANG"

    MY_CMD="de.sep.sesam.gui.client.Frame ${SERVER} -v${LOGLEVEL} -l${LOOK} -p${RMIPORT} -r${GUI_LANG} ${MASTER} ${SAVEPREF} ${EXCEPTION}"
    
  cd ${GV_RO_GUI}

  cmd="java $v -classpath $SMJAR $MY_CMD"
  my_echo "$cmd"
  $cmd
}
#
#
# START GUI

GV_RW_INI=`read_ini gv_rw_ini`
if grep "version=.*,4\.[34]\." ${GV_RW_INI}/sm.ini > /dev/null 2>&1
then
   SMJAR="./sm_ui.jar"
else
   SMJAR="./sm_gui.jar:./sm_lib.jar"
fi

echo "$VERSION"
RMIPORT=`read_ini gv_port_rmi`

while getopts VhA:f:l:M:P:p:r:S:v:X: opt
do
      case $opt in
         A) DBACCESS=$OPTARG;;
         S) SERVER="${SERVER} -S $OPTARG";;
         f) MYJAR=$OPTARG;;
         l) LOOK="${OPTARG}";;
         M) MASTER="-M${OPTARG}";;
         P) SAVEPREF="-P${OPTARG}";;
         p) RMIPORT=$OPTARG;;
         r) GUI_LANG=$OPTARG;;
         v) VERBOSE=$OPTARG;;
         V) SHOWVERSION=1;;
         X) EXCEPTION="-X${OPTARG}";;
	 \?|h) usage
            exit 1;;

      esac
done
shift `expr $OPTIND - 1`

if [ "$MYJAR" ]
then 
  if [ -d "$MYJAR" ];then
     SMJAR="$MYJAR/sm_gui.jar:$MYJAR/sm_lib.jar"
  else
     SMJAR="$MYJAR"
  fi
fi
 
GV_RW_INI=`read_ini gv_rw_ini`
my_echo "Sesam INI path : $GV_RW_INI/sm.ini"
GV_RO_GUI=`read_ini gv_ro_gui`
if [ -z $GV_RO_GUI ]; then
  GV_RO=`read_ini gv_ro`
  if [ -z $GV_RO ]; then
    GV_RO_GUI=`dirname $0`
  else
    GV_RO_GUI=$GV_RO/bin/gui
  fi
fi 
my_echo "$GV_RO_GUI" 
my_echo "Sesam GUI path : $GV_RO_GUI"

GV_RO_BIN=`read_ini gv_ro_bin`
PATH=${GV_RO_BIN}:$PATH
export PATH
if [ "$SHOWVERSION" ] 
then 
  show_version
  exit 0
fi
sub_gui


