#!/bin/bash
# Start/stop darkhttpd
# chkconfig:   - 85 15
# description: Secure, lightweight, fast, single-threaded \
#              HTTP/1.1 server.
# processname: darkhttpd
# config: /etc/sysconfig/darkhttpd
# pidfile: /var/run/darkhttpd/darkhttpd.pid

### BEGIN INIT INFO
# Provides: darkhttpd
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Should-Start: $syslog
# Should-Stop: $syslog
# Short-Description: HTTP/1.1 server
# Description: Secure, lightweight, fast, single-threaded \
#              HTTP/1.1 server
### END INIT INFO

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

# Source networking configuration.
. /etc/sysconfig/network

exec="/usr/sbin/darkhttpd"
prog="darkhttpd"
config="/etc/sysconfig/${prog}"
lockfile="/var/lock/subsys/${prog}"
PIDFILE="/var/www/${prog}/${prog}.pid"
# Pidfile is relative to HTTPDROOT if --chroot
ARGS="--pidfile ${prog}.pid --daemon"

[ -e /etc/sysconfig/${prog} ] && . /etc/sysconfig/${prog}

start() {
    [ "${NETWORKING}" = "no" ] && exit 1
    [ -x ${exec} ] || exit 5
    [ -f ${config} ] || exit 6

    echo -n $"Starting ${prog}: "
    echo
    daemon ${exec} "${DARKHTTPD_ROOT}" "${ARGS}" "${DARKHTTPD_FLAGS}" "${MIMETYPES}"
    retval=$?
    echo
    [ ${retval} -eq 0 ] && touch ${lockfile}
    return ${retval}
}

stop() {
    echo -n $"Stopping ${prog}: "
    killproc -p ${PIDFILE} ${prog}
    retval=$?
    echo
    [ ${retval} -eq 0 ] && rm -f ${lockfile} ${PIDFILE}
    return ${retval}
}

restart() {
    stop
    start
}

reload() {
    restart
}

force_reload() {
    restart
}

rh_status() {
    status -p ${PIDFILE} ${prog}
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}


case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
        exit 2
esac
exit $?

