#! /bin/sh
#
# Start/stop Yaws web server
#
# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
# Modified for Debian by Ian Murdock <imurdock@gnu.ai.mit.edu>.
# Modified for yaws #by Will Newton <will@debian.org>
# and Sergei Golovan <sgolovan@nes.ru>

### BEGIN INIT INFO
# Provides:          yaws
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts Yaws web server
# Description:       Starts Yaws web server, a high perfomance
#                    HTTP 1.1 webserver written in Erlang.
### END INIT INFO

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/yaws
NAME="yaws web server"
DESC=yaws
YAWS_USER=yaws
YAWS_ID=debian_yaws

test -x $DAEMON || exit 0

# Include yaws defaults if available
if [ -f /etc/default/yaws ] ; then
    . /etc/default/yaws
fi

if [ ! -d /var/run/yaws ] ; then
    install -o yaws -g yaws -m 750 -d /var/run/yaws
fi

daemon()
{
    script="$DAEMON -I $YAWS_ID $@"
    su $YAWS_USER -c "$script"
}

start()
{
    daemon -D $DAEMON_OPTS

    cnt=0
    while ! (daemon -S >/dev/null || test $? = 3) ; do
	echo -n .
	cnt=`expr $cnt + 1`
	if [ $cnt -ge 10 ] ; then
	    echo -n " failed"
	    break
	fi
	sleep 1
    done
}

stop()
{
    daemon -s >/dev/null || test $? = 3

    cnt=0
    while ! (daemon -S >/dev/null || test $? = 3) ; do
	echo -n .
	cnt=`expr $cnt + 1`
	if [ $cnt -ge 10 ] ; then
	    echo -n " failed"
	    break
	fi
	sleep 1
    done
}

case "$1" in
    start)
	echo -n "Starting $DESC: "
	start
	echo "$NAME."
    ;;
    stop)
	echo -n "Stopping $DESC: "
	stop
	echo "$NAME."
    ;;
    status)
	daemon -S
    ;;
    reload|force-reload)
	echo "Reloading $DESC configuration files."
	daemon -h
    ;;
    restart)
	echo -n "Restarting $DESC: "
	stop
	start
	echo "$NAME."
    ;;
    *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|status|restart|reload|force-reload}" >&2
	exit 1
    ;;
esac

exit 0
