summary refs log tree commit diff
path: root/debian/ash.postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/ash.postinst')
-rw-r--r--debian/ash.postinst54
1 files changed, 54 insertions, 0 deletions
diff --git a/debian/ash.postinst b/debian/ash.postinst
new file mode 100644
index 0000000..eb29719
--- /dev/null
+++ b/debian/ash.postinst
@@ -0,0 +1,54 @@
+#!/bin/sh
+#
+# post-install script for the Debian GNU/Linux ash package
+#
+# $Id$
+
+set -e
+
+check_divert() {
+	div=$(dpkg-divert --list $1)
+	distrib=${3:-$1.distrib}
+	case $div in
+	'' | *by\ dash)
+		;;
+	*by\ ash)
+		dst=${div% by ash}
+		dst=${dst##* to }
+
+		# Work around dpkg-divert bug.
+		if [ -e "$dst" ]; then
+			mv "$dst" "$dst.ash-tmp"
+		fi
+		dpkg-divert --remove $1
+		if [ -e "$dst.ash-tmp" ]; then
+			mv "$dst.ash-tmp" "$dst"
+		fi
+
+		dpkg-divert --package dash --divert $distrib --add $1
+		if [ "$dst" != $distrib ] && [ -e "$dst" ]; then
+			mv "$dst" $distrib
+		fi
+		ln -sf $2 $1
+		;;
+	*)
+		d=${1%/*}
+		if
+			[ -h $1 ] && [ -f $1 ] && [ -f $d/$4 ] &&
+			cmp $1 $d/$4
+		then
+			ln -sf $2 $1
+		fi
+		;;
+	esac
+}
+
+dcv='dpkg --compare-versions'
+
+if [ "$1" = configure ] && [ -n "$2" ] && $dcv "$2" lt 0.4.3; then
+	check_divert /bin/sh dash '' ash
+	check_divert /usr/share/man/man1/sh.1.gz dash.1.gz \
+		/usr/share/man/man1/sh.distrib.1.gz ash.1.gz
+fi
+
+#DEBHELPER#