#!/bin/bash
### BEGIN INIT INFO
# Provides: netifyd
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $syslog
# Should-Start: $syslog
# Should-Stop: $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start up the Netify daemon
# Description: Netify daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/netifyd
NAME="netifyd"
PIDFILE=/var/run/netifyd/netifyd.pid
DESC="Netify Daemon"

unset TMPDIR

# Exit if the package is not installed
test -x $DAEMON || exit 0

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions

start() {
    /sbin/modprobe -q nfnetlink || true
    /sbin/modprobe -q nf_conntrack_netlink || true

    log_daemon_msg "Starting $DESC" "$NAME"

    # Read option variables
    if [ -r /etc/default/$NAME ]; then
        . /etc/default/$NAME
    else
        log_failure_msg "Required configuration not found: /etc/default/$NAME"
        return 1
    fi

    if [ -z "$NETIFYD_OPTS" ]; then
        log_failure_msg "Please configure $DESC in: /etc/default/$NAME"
        return 1
    fi

    start-stop-daemon --start --quiet --oknodo --pidfile "$PIDFILE" --exec $DAEMON -- $NETIFYD_OPTS
    status=$?
    log_end_msg $status
    return $status
}   

stop() {
    log_daemon_msg "Stopping $DESC" "$NAME"
    start-stop-daemon --stop --quiet --retry 5 --oknodo --pidfile "$PIDFILE" --name $NAME
    status=$?
    log_end_msg $status
    return $status
}

case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    status)
        status_of_proc -p "$PIDFILE" "$DAEMON" "$NAME" && exit 0 || exit $?
    ;;
    restart)
        stop
        start
    ;;
    *)
    echo "Usage: $NAME {start|stop|status|restart}"
    exit 3
    ;;
esac
exit $RETVAL

# vi: expandtab shiftwidth=4 softtabstop=4 tabstop=4 syntax=sh
