summary refs log tree commit diff
path: root/debian/ash.postinst
blob: eb29719bc2f1b53eda331d7ba42077dc79eab862 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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#