#!/bin/bash

# test systemd intregation
set -eux

RC=0
fail () {
	echo "FAIL: $@" >&2
	RC=1
}


function exit_handler()
{
    systemctl status apache2.service || true
    systemctl stop apache2 || true
    cat /var/log/apache2/error.log || true
    cat /var/log/apache2/access.log || true
    exit 1
}
trap exit_handler EXIT

systemctl start apache2 ||systemctl restart apache2
systemctl is-active --quiet apache2
systemctl status apache2
wget -S -q --output-document - "http://localhost/" | head
systemctl reset-failed apache2
systemctl reload apache2
systemctl is-active --quiet apache2
systemctl status apache2
wget -S -q --output-document - "http://localhost/" | head
systemctl reset-failed apache2
systemctl restart apache2
systemctl is-active --quiet apache2
systemctl status apache2
wget -S -q --output-document - "http://localhost/" | head
systemctl reset-failed apache2
systemctl stop apache2
! systemctl is-active --quiet apache2
! systemctl status apache2
! ( wget -S -q --output-document - "http://localhost/" | head)
systemctl reset-failed apache2
systemctl start apache2 || systemctl restart apache2
systemctl is-active --quiet apache2
systemctl status apache2
wget -S -q --output-document - "http://localhost/" | head
systemctl reset-failed apache2
systemctl stop apache2
! systemctl is-active --quiet apache2

# now apachectl wrapper
systemctl reset-failed apache2
apachectl start
systemctl is-active --quiet apache2
systemctl status apache2
wget -S -q --output-document - "http://localhost/" | head
systemctl reset-failed apache2
apachectl graceful
systemctl is-active --quiet apache2
systemctl status apache2
wget -S -q --output-document - "http://localhost/" | head
systemctl reset-failed apache2
apachectl restart
systemctl is-active --quiet apache2
systemctl status apache2
wget -S -q --output-document - "http://localhost/" | head
systemctl reset-failed apache2
apachectl graceful-stop
! systemctl is-active --quiet apache2
! systemctl status apache2
! ( wget -S -q --output-document - "http://localhost/" | head)
systemctl reset-failed apache2
apachectl start

trap - EXIT

exit 0

