#!/bin/sh
### BEGIN INIT INFO
# Provides:          hiawatha
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Hiawatha web server
# Description:       Start the Hiawatha advanced and secure web server
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME=hiawatha
DAEMON=/usr/sbin/$NAME
PIDFILE=/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

[ -x "$DAEMON" ] || exit 0
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

. /lib/init/vars.sh
. /lib/lsb/init-functions

do_start() {
    /usr/sbin/wigwam -q || return 2
    start-stop-daemon --start --quiet --pidfile $PIDFILE \
        --exec $DAEMON --test > /dev/null || return 1
    start-stop-daemon --start --quiet --pidfile $PIDFILE \
        --exec $DAEMON || return 2
}

do_stop() {
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 \
        --pidfile $PIDFILE --name $NAME
    RETVAL="$?"
    [ "$RETVAL" = 2 ] && return 2
    rm -f $PIDFILE
    return "$RETVAL"
}

do_reload() {
    /usr/sbin/wigwam -q || return 1
    start-stop-daemon --stop --signal HUP --quiet \
        --pidfile $PIDFILE --name $NAME
    return 0
}

case "$1" in
    start)
        log_daemon_msg "Starting $NAME"
        do_start
        log_end_msg $?
        ;;
    stop)
        log_daemon_msg "Stopping $NAME"
        do_stop
        log_end_msg $?
        ;;
    reload|force-reload)
        log_daemon_msg "Reloading $NAME"
        do_reload
        log_end_msg $?
        ;;
    restart)
        log_daemon_msg "Restarting $NAME"
        /usr/sbin/wigwam -q || { log_end_msg 1; exit 1; }
        do_stop
        do_start
        log_end_msg $?
        ;;
    status)
        status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
        ;;
    *)
        echo "Usage: $SCRIPTNAME {start|stop|reload|force-reload|restart|status}" >&2
        exit 3
        ;;
esac

:
