#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

opts="${opts} reload"

[ "x${SERVERROOT}" != "x" ] && APACHE2_OPTS="${APACHE2_OPTS} -d ${SERVERROOT}"
[ "x${CONFIGFILE}" != "x" ] && APACHE2_OPTS="${APACHE2_OPTS} -f ${CONFIGFILE}"
[ "x${STARTUPERRORLOG}" != "x" ] && APACHE2_OPTS="${APACHE2_OPTS} -E ${STARTUPERRORLOG}"
# set a default for PIDFILE/RESTARTSTYLE for those that FAILED to follow
# instructiosn and update the conf.d/apache2 file.
# (bug #38787)
[ -z "${PIDFILE}" ] && PIDFILE=/var/run/apache2.pid
[ -z "${RESTARTSTYLE}" ] && RESTARTSTYLE="graceful"

checkconfig() {
	local myconf="/etc/apache2/conf/apache2.conf"
	if [ "x${CONFIGFILE}" != "x" ]; then
		if [ ${CONFIGFILE:0:1} = "/" ]; then
			myconf="${CONFIGFILE}"
		else
			myconf="${SERVERROOT:-/usr/lib/apache2}/${CONFIGFILE}"
		fi
	fi
	if [ ! -r "${myconf}" ]; then
		eerror "Unable to read configuration file: ${myconf}"
		return 1
	fi
    if [ -z "${PIDFILE}" ]; then
        eerror "\$PIDFILE is not set!"
        eerror "Did you etc-update /etc/conf.d/apache2?"
        return 1
    fi
    if [ -z "${RESTARTSTYLE}" ]; then
        eerror "\$RESTARTSTYLE is not set!"
        eerror "Did you etc-update /etc/conf.d/apache2?"
        return 1
    fi
	/usr/sbin/apache2 -t ${APACHE2_OPTS} 1>/dev/null 2>&1
	ret=$?
	if [ $ret -ne 0 ]; then
		eerror "Apache2 has detected a syntax error in your configuration files:"
		/usr/sbin/apache2 -t ${APACHE2_OPTS}
	fi
	return $ret
}

depend() {
	need net
	use mysql dns logger netmount postgres
	after sshd
}

start() {
	checkconfig || return 1
	ebegin "Starting apache2"
	[ -f /var/log/apache2/ssl_scache ] && rm /var/log/apache2/ssl_scache
	[ -f /usr/lib/apache2/build/envvars ] && . /usr/lib/apache2/build/envvars
	env -i PATH=$PATH /sbin/start-stop-daemon --quiet \
		--start --startas /usr/sbin/apache2 \
		--pidfile ${PIDFILE} -- -k start ${APACHE2_OPTS}
	eend $?
}

stop() {
	ebegin "Stopping apache2"
	/usr/sbin/apache2ctl stop >/dev/null
	start-stop-daemon -o --quiet --stop --pidfile ${PIDFILE}
	eend $?
}

reload() {
	# restarting apache2 is much easier than apache1. The server handles most of the work for us. 
	# see http://httpd.apache.org/docs-2.0/stopping.html for more details
	ebegin "Restarting apache2"
	/usr/sbin/apache2 ${APACHE2_OPTS} -k ${RESTARTSTYLE}
	eend $?
}
