#!/bin/sh
-# postinst script for bind9-cn
-#
-# see: dh_installdeb(1)
set -e
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-#
+[ "$1" = "configure" ] || exit 0
+[ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx
-case "$1" in
- configure|reconfigure)
- # continue below
- ;;
-
- *)
- exit 0
- ;;
-esac
-
-# import CN-functions
+# Load CARNET Tools
. /usr/share/carnet-tools/functions.sh
-# check if monitrc is an empty template
+# check if monitrc is ours
installfile=1
if [ -e /etc/monit/monitrc ]; then
- lines=$(grep -v '^#' /etc/monit/monitrc | wc -l)
- if [ $lines -lt 2 ]; then
+ if ! grep -q "CARNET package monit-cn" /etc/monit/monitrc; then
installfile=1
mv -f /etc/monit/monitrc /etc/monit/monitrc.dpkg-old
else
/etc/monit/monitrc || true
fi
-# fix "but not on { changed } bug in monitrc
-cp_check_and_sed '^set alert [^[:space:]]*@[^[:space:]]* (but )?not on { changed }$' \
- 's/^set alert \([^[:space:]]*@[^[:space:]]*\) .*$/set alert \1 only on { uid, gid, size, nonexist, data, icmp, instance, invalid, exec, timeout, resource, checksum, match, timestamp, connection, permission }/g' \
+# migrate to "but not on { instance }" alerting style
+cp_check_and_sed '^set alert [^[:space:]]*@[^[:space:]]* ' \
+ 's/^set alert \([^[:space:]]*@[^[:space:]]*\) .*$/set alert \1 but not on { instance }/g' \
/etc/monit/monitrc || true
-# if alert for "changed" is enabled, disable it ASAP
-# we're waiting for "but not on { changed }" to enter in official
-# package...
-cp_check_and_sed '^set alert [^[:space:]]*@[^[:space:]]*$' \
- 's/^set alert \([^[:space:]]*@[^[:space:]]*\)$/set alert \1 only on { uid, gid, size, nonexist, data, icmp, instance, invalid, exec, timeout, resource, checksum, match, timestamp, connection, permission }/g' \
- /etc/monit/monitrc || true
+# migrate from old hierarchy
+if [ -d /etc/monit.d ]; then
+ find /etc/monit.d -type f -print0 | xargs -0r -I% mv % /etc/monit/conf.d || true
+ rmdir /etc/monit.d >/dev/null 2>&1 || true
+fi
# (re)generate monit.d files
update-monit.d || true
# disable monit startup
-cp_check_and_sed '^startup[[:space:]]*=[[:space:]]*1' \
- '^startup[[:space:]]*=.*/startup=0/g' /etc/default/monit || true
-
-# systemv part
-echo "CN: Disabling monit SystemV script"
-if [ -x "/etc/init.d/monit" ]; then
- update-rc.d -f monit remove >/dev/null 2>&1
- if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
- invoke-rc.d monit stop || true
- else
- /etc/init.d/monit stop || true
- fi
+cp_check_and_sed '^startup[[:space:]]*=[[:space:]]*0' \
+ 's/^startup[[:space:]]*=.*/startup=1/g' /etc/default/monit || true
+cp_check_and_sed '^START[[:space:]]*=[[:space:]]*no' \
+ 's/^START[[:space:]]*=.*/START=yes/g' /etc/default/monit || true
+
+# remove us from systemv monit script
+if grep -q 'CARNET package monit-cn' /etc/init.d/monit; then
+ echo "CN: Removing monit workaround from /etc/init.d/monit -- systemd is in use"
+ cp-update -r monit-cn /etc/init.d/monit
+ chmod +x /etc/init.d/monit
fi
-if [ -e "/etc/init.d/monit" ]; then
- if ! grep -q 'CARNet package monit-cn' /etc/init.d/monit; then
- # shebang
- head -n1 /etc/init.d/monit > /etc/init.d/monit.$$
- # middle part
- cp-update monit-cn /etc/init.d/monit.$$ <<EOF
-echo "CN: Monit SystemV init script disabled -- inittab is in use"
-echo "CN: Exiting now..."
-exit 0
-EOF
- # rest of init script
- tail -n+2 /etc/init.d/monit >> /etc/init.d/monit.$$
- mv -f /etc/init.d/monit.$$ /etc/init.d/monit
- chmod +x /etc/init.d/monit
- fi
-fi
-
-# install as inittab service
-if ! grep -q '/usr/sbin/monit' /etc/inittab; then
- echo "CN: Installing monit service in /etc/inittab"
- rm -f /etc/inittab.$$
- cp /etc/inittab /etc/inittab.$$
- cp-update monit-cn /etc/inittab.$$ <<EOF
-mo:2345:respawn:/usr/sbin/monit -Ic /etc/monit/monitrc
-m0:06:wait:/usr/sbin/monit -Ic /etc/monit/monitrc stop myprocess
-EOF
- cp_mv /etc/inittab.$$ /etc/inittab
-fi
-
-# reload init, since we have new configuration
-echo "CN: (Re)starting monit service, please check /var/log/daemon.log"
-pkill -9 -f /usr/sbin/monit || true
-kill -HUP 1
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
+service monit restart
#DEBHELPER#