#!/usr/bin/pagsh -e
### BEGIN INIT INFO
# Provides:          apache2
# Required-Start:    $local_fs $remote_fs $network $syslog openafs-client
# Required-Stop:     $local_fs $remote_fs $network $syslog openafs-client
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop apache2 web server
### END INIT INFO
#
# Apache kstart wrapper by anders.
#

SCRIPT=/etc/init.d/apache2.invirt-orig
KSTART_PIDFILE=/var/run/k5start-apache2.pid
KSTART_KEYTAB=/etc/invirt/keytab

export AFSCELL=sipb.mit.edu

kstart_start () {
    TMP_PIDFILE=$(mktemp /tmp/k5start-apache2.pid-XXXXXX)
    chown www-data "$TMP_PIDFILE"
    export KRB5CCNAME=$(mktemp /tmp/krb5cc_33.kstart-XXXXXX)
    chown www-data $KRB5CCNAME
    /sbin/start-stop-daemon --start --pidfile "$TMP_PIDFILE" -c www-data \
	--exec /usr/bin/k5start -- -b -p "$TMP_PIDFILE" \
	-f "$KSTART_KEYTAB" -K10 -S afs -I "$AFSCELL" -t \
        "daemon/$(hostname -f)"
    cat "$TMP_PIDFILE" >|"$KSTART_PIDFILE"
    rm -f "$TMP_PIDFILE"
}
kstart_stop () {
    if [ -e $KSTART_PIDFILE ]; then
	/sbin/start-stop-daemon --stop --pidfile $KSTART_PIDFILE
        pgrep apache2 >/dev/null && sleep 1 \
         && pgrep apache2 >/dev/null && sleep 1 \
         && pgrep apache2 >/dev/null && sleep 1 \
         && pgrep apache2 >/dev/null && sleep 1 \
         && pkill -9 apache2
	rm -f $KSTART_PIDFILE
    else
	echo -n " ... no kstart pidfile"
    fi
}

case "$1" in
  start)
    echo -n "Starting kstart for Apache2: k5start"
    kstart_start
    echo "."
    exec "$SCRIPT" start
    ;;
  stop)
    "$SCRIPT" stop
    echo -n "Stopping kstart for Apache2: k5start"
    kstart_stop
    echo "."
    ;;
  restart|force-reload)
    "$0" stop
    sleep 1
    "$0" start
    ;;
  *)
    exec "$SCRIPT" "$@"
    ;;
esac
