* prilagodbe za Wheezy
[monit-cn.git] / debian / postinst
index 25a4a2f..d503cf6 100755 (executable)
@@ -30,11 +30,10 @@ esac
 # import CN-functions
 . /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 4 ]; 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
@@ -61,12 +60,20 @@ 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
 
+# 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
+cp_check_and_sed '^START[[:space:]]*=[[:space:]]*yes' \
+    's/^START[[:space:]]*=.*/START=no/g' /etc/default/monit || true
 
 # systemv part
 if ! grep -q 'CARNet package monit-cn' /etc/init.d/monit; then
@@ -95,20 +102,27 @@ EOF
     fi
 fi
 
+# if old inittab is referencing sbin, fix it
+if grep -q '/usr/sbin/monit' /etc/inittab; then
+    cp_check_and_sed '/usr/sbin/monit' \
+       's:/usr/sbin/monit:/usr/bin/monit:g' \
+       /etc/inittab || true
+fi
+
 # install as inittab service
-if ! grep -q '/usr/sbin/monit' /etc/inittab; then
+if ! grep -q '/usr/bin/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
+mo:2345:respawn:/usr/bin/monit -Ic /etc/monit/monitrc
+m0:06:wait:/usr/bin/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
+pkill -9 -f '/usr/bin/monit$' || true
 telinit q
 
 # dh_installdeb will replace this with shell code automatically