#!/bin/sh
#
#  $Id$
#
# /etc/init.d/fancymodbus-simulator
#
#
# hints for update-rc.d on Debian like distros and chkconfig on SuSE like distros
#
### BEGIN INIT INFO
# Provides:       fancymodbus-simulator
# Required-Start: $network $remote_fs
# Required-Stop:  $network $remote_fs
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6
# Description:    The Modbus device simulator
### END INIT INFO
#
#
# hints for chkconfig on RedHat like distros
#
# chkconfig: 345 90 10
# description: Starts/stops the Modbus device simulator
# processname: fancymodbus-simulator
#

test -f /var/log/fancymodbus-simulator_init.log && mv /var/log/fancymodbus-simulator_init.log  /var/log/fancymodbus-simulator_init.log.former

# defaults
export FANCYMODBUS_SIMULATOR_OPTIONS=""

# read in options
test -f /etc/default/fancymodbus-simulator && . /etc/default/fancymodbus-simulator 

case "$1" in
    start)
        LOGFILE="/var/log/fancymodbus-simulator_init_start.log"
        test -f ${LOGFILE} && mv ${LOGFILE} ${LOGFILE}.former
        echo -n "$0 $* called at ">>${LOGFILE}
        date >>${LOGFILE}

        if [ "$FANCYMODBUS_SIMULATOR_START" != "yes" ] ; then
          echo "FANCYMODBUS_SIMULATOR_START is not set to \"yes\" in /etc/default/fancymodbus-simulator, aborting." |tee -a ${LOGFILE}
          exit 1 
        fi
  
        mkdir -pv /var/run/fancymodbus-simulator 2>&1 |tee -a ${LOGFILE}
        chmod 0755 /var/run/fancymodbus-simulator 2>&1 |tee -a ${LOGFILE}
        
        echo -n "Starting Modbus device Simulator ..." 2>&1 |tee -a ${LOGFILE}
        /usr/bin/fancymodbus-simulator start ${FANCYMODBUS_SIMULATOR_OPTIONS} 2>&1 |tee -a ${LOGFILE}
        STATUSRC=$?
        if [ "$STATUSRC" = "0" ] ; then
          echo "OK" |tee -a ${LOGFILE}
        else
          echo "failed" |tee -a ${LOGFILE}
        fi
        ;;
    stop)
        LOGFILE="/var/log/fancymodbus-simulator_init_stop.log"
        test -f ${LOGFILE} && mv ${LOGFILE} ${LOGFILE}.former
        echo -n "Stopping Modbus device Simulator ..." 2>&1 |tee -a ${LOGFILE}
        /usr/bin/fancymodbus-simulator stop ${FANCYMODBUS_SIMULATOR_OPTIONS} 2>&1 |tee -a ${LOGFILE}
        STATUSRC=$?
        if [ "$STATUSRC" = "0" ] ; then
          echo "OK" |tee -a ${LOGFILE}
        else
          echo "failed" |tee -a ${LOGFILE}
        fi
        ;;
    restart)
        $0 status >/dev/null 2>/dev/null && ( $0 stop || exit 1 ) 
        $0 start
        ;;
    status)
        echo "Statusing Modbus device Simulator ..."
        /usr/bin/fancymodbus-simulator status ${FANCYMODBUS_SIMULATOR_OPTIONS}
        STATUSRC=$?
        if [ "$STATUSRC" = "0" ] ; then
          echo "Modbus device Simulator seems fine."
        else
          echo "Modbus device Simulator seems NOT to be running."
        fi
        exit $STATUSRC
        ;;
    *)
        echo "Usage: $0 {start|stop|status|restart}"
        exit 1
esac
