#!/bin/bash
#
# msg-to-handler startup script
#
# chkconfig: - 90 10
# description: msg-to-handler daemon
# config: /etc/msg-to-handler.conf
#

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

# source daemon configuration
if [ -f /etc/sysconfig/msg-to-handler ]; then
    . /etc/sysconfig/msg-to-handler
fi

# set defaults
MSG_TO_HANDLER_CONFIG=${MSG_TO_HANDLER_CONFIG:-"/etc/msg-to-handler.conf"}
MSG_TO_HANDLER_USER=${MSG_TO_HANDLER_USER:-"nagios"}
MSG_TO_HANDLER_OPTIONS=${MSG_TO_HANDLER_OPTIONS:-""}

RETVAL=0
PROG_NAME="msg-to-handler"
PROG_PATH="/usr/sbin/$PROG_NAME"
PROG_LOCK="/var/lock/subsys/$PROG_NAME"

# return the pid of the running daemon (if any)
function prog_pid(){
    pidof -c -o $$ -o $PPID -o %PPID -x $PROG_PATH
}

# start daemon
function start(){
    echo -n "Starting $PROG_NAME: "
    daemon --user $MSG_TO_HANDLER_USER \
	$PROG_PATH --daemon --config $MSG_TO_HANDLER_CONFIG $MSG_TO_HANDLER_OPTIONS
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch $PROG_LOCK
    echo
}

# stop daemon
function stop(){
    echo -n "Stopping $PROG_NAME: "
    runuser -s /bin/bash - $MSG_TO_HANDLER_USER -c \
	"$PROG_PATH --quit --config $MSG_TO_HANDLER_CONFIG $MSG_TO_HANDLER_OPTIONS" \
	>/dev/null 2>&1
    for n in 1 2 3 4 5; do
	sleep 1
	pid=`prog_pid`
	[ -z "$pid"  ] && break
    done
    if [ -n "$pid" ]; then
	killproc $PROG_PATH
	RETVAL=$?
    else
	success "$PROG_NAME shutdown"
	RETVAL=0
    fi
    [ $RETVAL -eq 0 ] && rm -f $PROG_LOCK
    echo
}

# main
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart|reload)
        stop
        start
        ;;
    condrestart)
        if [ -f $PROG_LOCK ]; then
	    stop
	    start
        fi
        ;;
    status)
        status $PROG_PATH
	RETVAL=$?
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|reload|condrestart|status}"
	RETVAL=1
        ;;
esac

exit $RETVAL
