#!/bin/sh
#
#   Startup/shutdown script for the Linux RIS daemon.
#
#   Linux chkconfig stuff:
#
#   chkconfig: - 98 10
#   description: Startup/shutdown script for the Linux RIS \
#                daemon.
#
### BEGIN INIT INFO
# Provides: ris-linuxd
# Required-Start: $syslog $local_fs
# Required-Stop: $syslog $local_fs
# Default-Stop: 0 1 6
# Short-Description: RIS for Linux
# Description: RIS for Linux
### END INIT INFO

# Source function library.
. /etc/init.d/functions

[ -f /etc/sysconfig/ris-linuxd ] && source /etc/sysconfig/ris-linuxd

# Check if the directory exists
if [ -z "$BINLSRV_INFPATH" -o ! -d "$BINLSRV_INFPATH" ]; then
    echo "No such file or directory $BINLSRV_INFPATH"
    exit 1
fi

BINLSRV_DEVLISTCACHE="${BINLSRV_INFPATH}/devlist.cache"
if [ ! -f "$BINLSRV_DEVLISTCACHE" ]; then
    /usr/share/ris-linux/infparser.py $BINLSRV_INFPATH
fi

[ -z "$BINLSRV_LOGFILE" ] && LOG_OPT="-l /var/log/ris-linuxd.log" || LOG_OPT="-l $BINLSRV_LOGFILE"
[ -z "$BINLSRV_PIDFILE" ] && PID_OPT="--pid=/var/run/ris-linuxd.pid" || PID_OPT="--pid=$BINLSRV_PIDFILE"

DAEMON="ris-linuxd"

prog=ris-linuxd

start () {
    echo -n $"Starting $prog: "

    # start daemon
    daemon $DAEMON -d $BINLSRV_OPTS $LOG_OPT $PID_OPT $BINLSRV_DEVLISTCACHE

    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ris-linuxd
    return $RETVAL
}

stop () {
    # stop daemon
    echo -n $"Stopping $prog: "
    killproc $DAEMON
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ris-linuxd
    return $RETVAL
}

restart() {
    stop
    start
}

rh_status() {
    # run checks to determine if the service is running or use generic status
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case $1 in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        restart
    ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        restart
    ;;
    reload)
        restart
    ;;
    status)
        status $DAEMON
        RETVAL=$?
    ;;
    *)

    echo $"Usage: $prog {start|stop|restart|condrestart|reload|status}"
    exit 3
esac

exit $RETVAL
