#!/bin/bash

set -e

# a little helper for getting permissions right
setperm() {
    local user="$1"
    local group="$2"
    local mode="$3"
    local file="$4"
    shift 4
    # only do something when no setting exists
    if ! dpkg-statoverride --list "$file" >/dev/null 2>&1; then
      chown "$user":"$group" "$file"
      chmod "$mode" "$file"
    fi
}

dpkg-maintscript-helper mv_conffile \
    /etc/icinga/objects/check_mk_templates.cfg \
    /etc/icinga/objects/check_mk/check_mk_templates.cfg \
    1.1.10-2 -- "$@"

# older releases (1.1.12p7-1 at least) delivered the multisite conffile to
# /etc/apache2/conf.d. If it exists we need to move it to conf-available
# once it's moved then the code below will setup the conf.d symlink.
# This code wasn't in place until 1.2.6p4-2, so we need to check everything
# before that.
dpkg-maintscript-helper mv_conffile \
    /etc/apache2/conf.d/check_mk_multisite.cfg \
    /etc/apache2/conf-available/check_mk_multisite.cfg \
    1.2.6p4-2 -- "$@"

if [ -e '/etc/icinga/objects/check_mk_objects.cfg' ];
then
    echo 'Migrate /etc/icinga/objects/check_mk_objects.cfg to /etc/icinga/objects/check_mk/check_mk_objects.cfg'
    mv /etc/icinga/objects/check_mk_objects.cfg \
    /etc/icinga/objects/check_mk/check_mk_objects.cfg
fi

case "$1" in
	  configure)
		#make sure our nagios user exists  
		if ! getent passwd nagios > /dev/null ; then
			echo 'Adding system-user for nagios' 1>&2
			adduser --system --group --home /var/lib/nagios \
			  --disabled-login --force-badname nagios > /dev/null
		fi
		#fix permissions for some directorys
		test -d /etc/icinga/objects/check_mk || mkdir -p /etc/icinga/objects/check_mk
		setperm root nagios 0775 /etc/icinga/objects/check_mk

                #handle the apache2.2 -> apache2.4 upgrade (see https://wiki.debian.org/Apache/PackagingFor24)
                CONF="check-mk-multisite"
                COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true)

                if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
                        . /usr/share/apache2/apache2-maintscript-helper
                        apache2_invoke enconf $CONF || exit $?
                elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then
                        if [ -d /etc/apache2/conf.d/ ]; then
                                if [ -L /etc/apache2/conf.d/$CONF.conf ]; then
                                        # it's a symlink, all is well
                                        true
                                elif [ -e /etc/apache2/conf.d/$CONF.conf ]; then
                                        # it's not a symlink, but exists, error
                                        echo "ERROR: /etc/apache2/conf.d/$CONF.conf is not a symlink, please investigate" 1>&2
                                else
                                        # we need to create the symlink
                                        ln -s ../conf-available/$CONF.conf /etc/apache2/conf.d/$CONF.conf
                                fi
                        fi
                fi
    ;;
  abort-upgrade|abort-remove|abort-deconfigure)
    ;;
  *)
    echo "postinst called with unknown argument \$1'" >&2
    exit 1
    ;;
esac

#DEBHELPER#
