izmjene u postinstu
[monit-cn.git] / debian / postinst
index 019d806..5b887c2 100755 (executable)
@@ -1,40 +1,17 @@
 #!/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
@@ -56,70 +33,34 @@ if grep -q '@localhost' /etc/monit/monitrc; then
         /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' \
-    's/^startup[[:space:]]*=.*/startup=0/g' /etc/default/monit || true
-
-# systemv part
-if ! grep -q 'CARNet package monit-cn' /etc/init.d/monit; then
-    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
-    fi
-    if [ -e "/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
+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
 
-# install as inittab service
-if ! grep -q '/usr/sbin/monit' /etc/inittab; then
-    echo "CN: Installing monit service in /etc/inittab"
-    cp -a /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
-/bin/kill -HUP 1
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
+service monit restart
 
 #DEBHELPER#