#!/bin/sh
#
# apache	Start the apache HTTP server.
#
# The variables below are NOT to be changed.  They are there to make the
# script more readable.  Look in /etc/defaults/apache for editable variables.

NAME=apache
DAEMON=/usr/sbin/$NAME
PIDFILE=/var/run/$NAME.pid
CONF=/etc/$NAME/httpd.conf
APACHECTL=/usr/sbin/${NAME}ctl
DEFAULT=/etc/default/$NAME

trap "" 1

# Check that we're not being started by inetd
if egrep -q -i "^[[:space:]]*ServerType[[:space:]]+inet" $CONF
then
    exit 0
fi

test_config() {
    if [ ! -x $APACHECTL ]; then
	echo "$APACHECTL is not executable, exiting"
	exit 0
    fi

    # ensure we don't leak environment vars into apachectl
    APACHECTL="env -i LANG=C PATH=/bin:/usr/bin:/sbin:/usr/sbin $APACHECTL"

    if ! $APACHECTL configtest 2> /dev/null
    then
        echo -ne "Configuration syntax error detected. Not reloading.\n\n"
        $APACHECTL configtest
        exit 1
    fi
}

should_start() {
    if [ -e $DEFAULT ]; then
	. $DEFAULT
	if [ "$start_at_boot" != "true" ]; then
	    echo "$NAME Webserver not started as requested"
	    exit 0
	fi
    fi
    if [ ! -x $DAEMON ]; then
	echo "apache is not executable, not starting"
	exit 0
    fi
}

case "$1" in
  start)
    should_start
    test_config
    echo -n "Starting web server: $NAME"
    start-stop-daemon --start --pidfile $PIDFILE --exec $DAEMON > /dev/null
    ;;

  stop)
    echo -n "Stopping web server: $NAME"
    start-stop-daemon --stop --pidfile $PIDFILE --oknodo
    ;;

  reload | force-reload)
    test_config
    echo -n "Reloading $NAME configuration"
    start-stop-daemon --stop --pidfile $PIDFILE --signal USR1
    ;;

  reload-modules)
    test_config
    echo -n "Reloading $NAME modules"
    start-stop-daemon --stop --pidfile $PIDFILE --oknodo --retry 30
    should_start
    start-stop-daemon --start --pidfile $PIDFILE --exec $DAEMON > /dev/null
    ;;

  restart)
    test_config
    echo -n "Restarting $NAME"
    if ! start-stop-daemon -q --stop --pidfile $PIDFILE --signal HUP; then
	start-stop-daemon --start --pidfile $PIDFILE --exec $DAEMON > /dev/null
    fi
    ;;

  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|reload|reload-modules|force-reload|restart}"
    exit 1
    ;;
esac

if [ $? -eq 0 ]; then
	echo .
	exit 0
else
	echo " failed"
	exit 1
fi
