#!/bin/sh
#
# direvent     Directory event monitor
#
# chkconfig:   - 49 50
# description: Startup/shutdown script for direvent
# processname: direvent
# pidfile:     /var/run/direvent.pid

### BEGIN INIT INFO
# Provides:          direvent
# Required-Start:    $local_fs $network $remote_fs $syslog
# Required-Stop:     $local_fs $network $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Directory event monitor
# Description:       Monitors directories and runs commands on events.
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="direvent"
NAME=direvent
DAEMON=/usr/bin/direvent
PIDFILE=/var/run/${NAME}.pid
LOCKFILE=/var/lock/subsys/${NAME}
SCRIPTNAME=/etc/init.d/${NAME}

[ -x "${DAEMON}" ] || exit 0

. /etc/rc.d/init.d/functions

do_start() {
    if [ -f ${PIDFILE} ]; then
        if status -p ${PIDFILE} ${DAEMON} >/dev/null 2>&1; then
            echo -n $"${DESC} is already running"
            failure
            echo
            return 1
        else
            rm -f ${PIDFILE}
        fi
    fi

    echo -n $"Starting ${DESC}: "
    daemon --pidfile ${PIDFILE} ${DAEMON}
    RETVAL=$?
    echo
    [ ${RETVAL} -eq 0 ] && touch ${LOCKFILE}
    return ${RETVAL}
}

do_stop() {
    echo -n $"Stopping ${DESC}: "
    killproc -p ${PIDFILE} ${DAEMON}
    RETVAL=$?
    echo
    if [ ${RETVAL} -eq 0 ]; then
        rm -f ${LOCKFILE} ${PIDFILE}
    fi
    return ${RETVAL}
}

do_status() {
    status -p ${PIDFILE} ${DAEMON}
    exit $?
}

case "$1" in
    start)
        do_start
        ;;
    stop)
        do_stop
        ;;
    restart|force-reload)
        do_stop
        sleep 2
        do_start
        ;;
    status)
        do_status
        ;;
    *)
        echo "Usage: ${SCRIPTNAME} {start|stop|status|restart}" >&2
        exit 3
        ;;
esac

exit $?
