#!/bin/bash set -e # some shorthands for sanity en="/etc/nagios3" enc="/etc/nagios3/conf.d" usn="/usr/share/nagios3" . /usr/share/debconf/confmodule if [ -n "$NAG3DEBUG" ]; then echo "now debugging $0 $@" set -x fi # location of the default apache configuration for nagios. apacheconf=$en/apache2.conf # location of the default htpasswd authentication file. htpw=$en/htpasswd.users 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 if [ -e "$file" ]; then chown "$user":"$group" "$file" chmod "$mode" "$file" fi fi } case "$1" in configure) 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 db_get nagios3/adminpassword admpass="$RET" # register apache2.conf via ucf: ucf --debconf-ok /usr/share/nagios3-cgi/apache2.conf $apacheconf echo "enabling Apache2 config..." COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true) # NEW method for Apache >= 2.4 if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then . /usr/share/apache2/apache2-maintscript-helper apache2_invoke enmod cgi apache2_invoke enconf nagios3 # remove OLD Apache 2.2 link [ -L /etc/apache2/conf.d/nagios3.conf ] && rm /etc/apache2/conf.d/nagios3.conf # OLD methods for Apache < 2.4 elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then # create symlink if not existing [ -f /etc/apache2/conf.d/nagios3.conf ] || ln -vs $apacheconf /etc/apache2/conf.d/nagios3.conf if [ -f /etc/init.d/apache2 ] ; then if [ -x /usr/sbin/invoke-rc.d ]; then invoke-rc.d apache2 reload 3>/dev/null || true else /etc/init.d/apache2 reload 3>/dev/null || true fi fi fi # we reset the password every run, so if it exists we're running # after being specifically given a password and can unconditionally set it. # XXX there's no way of setting the pw w/out giving it on the cmdline? wtf? if [ -n "$admpass" ]; then touch "$htpw" htpasswd -b "$htpw" nagiosadmin "$admpass" fi # everything went well, so now let's reset the password db_set nagios3/adminpassword "" db_set nagios3/adminpassword-repeat "" # ... done with debconf here db_stop ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \$1'" >&2 exit 1 ;; esac #DEBHELPER#