- another stab at lintian fixes...
[amavisd-cn.git] / debian / postinst
index ee3f156..32c46bb 100755 (executable)
@@ -1,7 +1,22 @@
 #!/bin/sh
+# postinst script for amavisd-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
+#
+
 [ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx
 
 case "$1" in
@@ -110,26 +125,60 @@ fi
 
 # kill naughty pyzor descendants -- XXX needed for 2.4 or not?
 if dpkg --compare-versions "$2" lt 2:20030616p10-7 && \
-    pgrep -u amavis -f '/usr/bin/pyzor check' > /dev/null; then
-  /etc/init.d/amavisd-cn stop
+  pgrep -u amavis -f '/usr/bin/pyzor check' > /dev/null; then
+  if [ -x "/etc/init.d/amavisd-cn" ]; then
+    if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+      invoke-rc.d amavisd-cn stop
+    else
+      /etc/init.d/amavisd-cn stop
+    fi
+  fi
   pkill -9 -u amavis -f '/usr/bin/pyzor check' > /dev/null || true
-  /etc/init.d/amavisd-cn start
+  if [ -x "/etc/init.d/amavisd-cn" ]; then
+    if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+      invoke-rc.d amavisd-cn start
+    else
+      /etc/init.d/amavisd-cn start
+    fi
+  fi
   restart_daemon=
   restart_mta=
 fi
 
+# register for automatic start
+update-rc.d -f amavis remove >/dev/null || true
+update-rc.d amavisd-cn defaults 19 21 >/dev/null
+
 # START AMAVISD
 # about a half of amavisd-cn script is here
 if [ "$restart_daemon" -a -x /etc/init.d/amavis.amavisd-new ]; then
-  /etc/init.d/amavis.amavisd-new restart
+  if [ -x "/etc/init.d/amavis.amavisd-new" ]; then
+    if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+      invoke-rc.d amavis.amavisd-new restart
+    else
+      /etc/init.d/amavis.amavisd-new restart
+    fi
+  fi
 fi
 # always check that the daemons are running
 if ! wait_for_fds amavis; then
-  /etc/init.d/amavis.amavisd-new start
+  if [ -x "/etc/init.d/amavis.amavisd-new" ]; then
+    if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+      invoke-rc.d amavis.amavisd-new start
+    else
+      /etc/init.d/amavis.amavisd-new start
+    fi
+  fi
   wait_for_fds amavis
 fi
 if [ "$restart_mta" ]; then
-  /etc/init.d/$mta restart
+  if [ -x "/etc/init.d/$mta" ]; then
+    if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+      invoke-rc.d $mta restart
+    else
+      /etc/init.d/$mta restart
+    fi
+  fi
 fi
 
 # this needs to be updated when $CRONTAB file changes
@@ -167,3 +216,5 @@ if [ -n "$2" -a -z "$changed_config" ] && \
 fi
 
 cp_mail $PKG $VERSION
+
+exit 0