#! /bin/sh

### BEGIN INIT INFO
# Provides:          pads
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:     $network $local_fs $remote_fs
# Should-Start:      $syslog
# Should-Stop:       $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Passive asset detection system
# Description:       Signature based detection engine used to passively
#                    detect network assets.
### END INIT INFO

set -e

. /lib/lsb/init-functions

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Passive Asset Detection System"
NAME=pads
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

# Default options
OPTS="-D -c /etc/pads/pads.conf"

# Read config file if it is present.
if [ -r /etc/default/$NAME ]
then
	. /etc/default/$NAME
fi

running() {
    if [ -f "$PIDFILE" ] && \
       [ "x`pidof -s $NAME`" = "x`cat $PIDFILE 2> /dev/null`" ]
    then
        return 0
    fi
    return 1
}

#
#	Function that starts the daemon/service.
#
d_start() {
	start-stop-daemon --start --quiet --pidfile $PIDFILE \
		--exec $DAEMON -- $OPTS > /dev/null
}

#
#	Function that stops the daemon/service.
#
d_stop() {
	start-stop-daemon --stop --quiet --pidfile $PIDFILE \
		--name $NAME
}

#
#	Function that sends a SIGHUP to the daemon/service.
#
d_reload() {
	start-stop-daemon --stop --quiet --pidfile $PIDFILE \
		--name $NAME --signal 1
}

case "$1" in
  start)
    log_daemon_msg "Starting $DESC" "$NAME"
    if running ; then
        log_progress_msg "(already running)"
        log_end_msg 0
        exit 0
    fi
    if d_start ; then
        log_end_msg $?
    else
        log_end_msg $?
    fi
	;;
  stop)
    log_daemon_msg "Stopping $DESC" "$NAME"
    if ! running; then
        log_progress_msg "not running"
        log_end_msg 0
        exit 0
    fi
    if d_stop ; then
        log_end_msg $?
    else
        log_end_msg $?
        exit 0
    fi
	;;
  status)
    log_daemon_msg "Checking status of $DESC" "$NAME"
    if running ; then
        log_progress_msg "running"
        log_end_msg $?
    else
        log_progress_msg "not running"
        log_end_msg $?
    fi
    ;;
  restart|reload|force-reload)
    $0 stop
    sleep 1
    $0 start
	;;
  *)
	echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2
	exit 1
	;;
esac

exit 0
