#! /bin/sh

# lsyncd	File change monitoring and synchronization daemon
#
# chkconfig:	- 90 10
# description:  Lsyncd watches a local directory trees event monitor interface (inotify) \
#		It aggregates and combines events for a few seconds and then spawns one \
#		(or more) process(es) to synchronize the changes. By default this is rsync.
# processname: lsyncd
# config: /etc/lsyncd/lsyncd.conf.lua
# pidfile: /var/run/lsyncd.pid

### BEGIN INIT INFO
# Provides:          lsyncd
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:
# Default-Stop:      0 1 6
# Short-Description: lsyncd daemon init script
# Description:       This script launches the lsyncd daemon.
### END INIT INFO

WITHOUT_RC_COMPAT=1

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


NAME=lsyncd
DAEMON="/usr/bin/$NAME"
CONFIG=/etc/lsyncd/lsyncd.conf.lua
PIDFILE=/var/run/$NAME.pid
DAEMON_ARGS="-pidfile ${PIDFILE} ${CONFIG}"

RETVAL=0


# Exit if config file does not exist
[ -r "$CONFIG" ] || exit 0


start()
{
	start_daemon --lockfile "$LOCKFILE" --pidfile "$PIDFILE"  -- "$DAEMON" "$DAEMON_ARGS"
	RETVAL=$?
	return "$RETVAL"
}

stop()
{
	stop_daemon --lockfile "$LOCKFILE" --pidfile "$PIDFILE" -- "$NAME"
	RETVAL="$?"
	return "$RETVAL"
}

restart()
{
	stop
	start
}


reload() {
	msg_reloading "$NAME"
	stop_daemon --pidfile "$PIDFILE" -HUP -- "$NAME"
	RETVAL=$?
	return "$RETVAL"
}

case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        reload)
                reload
                ;;
        restart)
                restart
                ;;
        condstop)
                if [ -e "$LOCKFILE" ]; then
                        stop
                fi
                ;;
        condrestart)
                if [ -e "$LOCKFILE" ]; then
                        restart
                fi
                ;;
        condreload)
                if [ -e "$LOCKFILE" ]; then
                        reload
                fi
                ;;
        status)
                status --pidfile "$PIDFILE" --expect-user root -- "$NAME"
                RETVAL=$?
                ;;
        *)
                msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|status}"
                RETVAL=1

esac

exit $RETVAL

