#! /bin/sh
version="$Id: sesam2000_rc,v 1.3 2003/07/09 10:37:33 sesam Exp $"

# ENVIROMMENT
PATH=/sbin:/bin:/usr/bin:$PATH
export PATH

# For Suse Linux check rc.config
if test -f /etc/rc.config 
  then
    . /etc/rc.config
  fi

# Determine the base and follow a runlevel link name.

# Force execution if not called by a runlevel directory.

read_ini()
{
   SM_INI=`grep -i '^sm_ini=' /etc/sesam2000.ini|cut -d"=" -f2`
   echo `grep -i "$1=" "$SM_INI"|cut -d"=" -f2`
}

GV_RO_BIN=`read_ini gv_ro_bin`

GV_RW_INI=`read_ini gv_rw_ini`
if test -f $GV_RW_INI/sesam2000.profile
then
  . $GV_RW_INI/sesam2000.profile
else
  DUMMY=0
fi
# . /usr/prof

# The echo return value for success (defined in /etc/rc.config).
rc_failed=${rc_failed:-failed}
rc_done=${rc_done:-done}
return=${rc_done:-done}
case "$1" in
    start)

       if test -f ${GV_RO_BIN}/sm_ctrld.sh
       then
               echo -n "Starting sesam2000 ctrl daemon:"
               ${GV_RO_BIN}/sm_ctrld.sh start  >/dev/null 2>&1 || return=$rc_failed
               echo -e "$return"
       else
           if test -f ${GV_RO_BIN}/sm_os_startup
           then
               echo -n "Starting sesam2000 server:"
               if { nohup ${GV_RO_BIN}/sm_startup start  >/dev/null 2>&1; } & 
               then 
                 :
               else
                 return=${rc_failed:-failed}
               fi
               echo -e "$return"
           fi
       fi


       ;;

    stop)

       if  test -f ${GV_RO_BIN}/sm_ctrld.sh
       then
                echo -n "Shutting down sesam2000 ctrl deamon:"
                ${GV_RO_BIN}/sm_ctrld.sh stop  >/dev/null 2>&1 || return=$rc_failed
                echo -e "$return"
       else              
           if test -f ${GV_RO_BIN}/sm_os_startup
           then
                echo -n "Shutting down sesam2000 server:"
                ${GV_RO_BIN}/sm_os_startup stop  >/dev/null 2>&1 || return=$rc_failed
                echo -e "$return"
           fi
       fi

       ;;
    status)
       echo -n "Checking for service at daemon: "
       ${GV_RO_BIN}/sm_main status >/dev/null 2>&1 && echo OK || echo No Sesam2000 process
        ;;
    reload)
       $0 stop  &&  $0 start  ||  return=$rc_failed
       ;;
    restart)
       $0 stop  &&  $0 start  ||  return=$rc_failed
       ;;
    *)
       echo "Usage: $0 {start|stop|status|restart|reload}"
       exit 1
       ;;
esac

# Inform the caller not only verbosely and set an exit status.
test "$return" = "$rc_done" || exit 1
exit 0

