[Initscripts-ng-commits] r132 - /trunk/src/insserv/debian/insserv.postinst

pere at users.alioth.debian.org pere at users.alioth.debian.org
Thu Sep 7 11:26:43 UTC 2006


Author: pere
Date: Thu Sep  7 11:26:42 2006
New Revision: 132

URL: http://svn.debian.org/wsvn/initscripts-ng/?sc=1&rev=132
Log:
Add code to divert update-rc.d.

Modified:
    trunk/src/insserv/debian/insserv.postinst

Modified: trunk/src/insserv/debian/insserv.postinst
URL: http://svn.debian.org/wsvn/initscripts-ng/trunk/src/insserv/debian/insserv.postinst?rev=132&op=diff
==============================================================================
--- trunk/src/insserv/debian/insserv.postinst (original)
+++ trunk/src/insserv/debian/insserv.postinst Thu Sep  7 11:26:42 2006
@@ -5,24 +5,53 @@
 . /usr/share/debconf/confmodule
 
 flagfile=/etc/update-rc.d-insserv
+package=insserv
+
+# Based on code from dash postinst
+check_divert() {
+    div=$(dpkg-divert --list $2)
+    distrib=${4:-$2.distrib}
+    case "$1" in
+    true)
+        if [ -z "$div" ]; then
+	    dpkg-divert --package $package --divert $distrib --add $2
+	    cp -dp $2 $distrib
+	    ln -sf $3 $2
+	fi
+	;;
+    false)
+        if [ -n "$div" ] && [ -z "${div%%*by $package}" ]; then
+	    mv $distrib $2
+	    dpkg-divert --remove $2
+	fi
+	;;
+    esac
+}
+
+
 
 case "$1" in
     configure)
 	db_get insserv/enable || true
-	if [ "$RET" = true ] ; then # Make sure it is enabled
+	if [ true = "$RET" ] && [ ! -f $flagfile ]; then
+	    # Enable it, as it was not enabled already
 
-	    # Reorder the boot sequence
+	    # Reorder the boot sequence, and divert if it worked
 	    if update-bootsystem-insserv ; then
 		: # All OK
 		echo "success: Boot system successfully converted"
 		touch $flagfile
+
+	        # Divert update-rc.d to update-rc.d-insserv
+		check_divert true /usr/sbin/update-rc.d \
+		    /usr/sbin/update-rc.d-insserv
 	    else
 		echo "error: Unable to enable dependency based boot system."
 	    fi
-
-	    # Divert update-rc.d to update-rc.d-insserv
-	elif [ -f $flagfile ] ; then # Disable it
+	elif [ true != "$RET" ] && [ -f $flagfile ] ; then # Disable it
 	    # Undo divert
+	    check_divert false /usr/sbin/update-rc.d \
+		/usr/sbin/update-rc.d-insserv
 
 	    # Revert to old boot order if possible
 	    update-bootsystem-insserv remove




More information about the Initscripts-ng-commits mailing list