#!/bin/sh -e
# This script can be called in the following ways:
#
# After the package was installed:
#	<postinst> configure <old-version>
#
#
# If prerm fails during upgrade or fails on failed upgrade:
#	<old-postinst> abort-upgrade <new-version>
#
# If prerm fails during deconfiguration of a package:
#	<postinst> abort-deconfigure in-favour <new-package> <version>
#	           removing <old-package> <version>
#
# If prerm fails during replacement due to conflict:
#	<postinst> abort-remove in-favour <new-package> <version>


# Enable udevadm again
enable_udevadm()
{
    if [ -e /sbin/udevadm.upgrade ]; then
	    rm -f /sbin/udevadm
	    dpkg-divert --package fake-udev --rename --divert /sbin/udevadm.upgrade \
			--remove /sbin/udevadm
    fi
}

# Remove things from the initial device tree that are no longer required
remove_devices()
{
    rm -f /lib/udev/devices/fd
    rm -f /lib/udev/devices/stdin
    rm -f /lib/udev/devices/stdout
    rm -f /lib/udev/devices/stderr
    rm -f /lib/udev/devices/core
    rm -f /lib/udev/devices/sndstat
    rm -f /lib/udev/devices/console
    rm -f /lib/udev/devices/null
    rm -f /lib/udev/devices/ppp
    rm -f /lib/udev/devices/loop0
    rm -rf /lib/udev/devices/net
    rm -rf /lib/udev/devices/pts
    rm -rf /lib/udev/devices/shm
}

# Write the initial copy of the persistent net and cd rules
seed_persistent_rules()
{
    FILE=/etc/udev/rules.d/70-persistent-net.rules
    if [ ! -e $FILE ]; then
	echo "# This file maintains persistent names for network interfaces." > $FILE
	echo "# See udev(7) for syntax." >> $FILE
	echo "#" >> $FILE
	echo "# Entries are automatically added by the 75-persistent-net-generator.rules" >> $FILE
	echo "# file; however you are also free to add your own entries." >> $FILE
    fi

    FILE=/etc/udev/rules.d/70-persistent-cd.rules
    if [ ! -e $FILE ]; then
	echo "# This file maintains persistent names for CD/DVD reader and writer devices." > $FILE
	echo "# See udev(7) for syntax." >> $FILE
	echo "#" >> $FILE
	echo "# Entries are automatically added by the 75-cd-aliases-generator.rules" >> $FILE
	echo "# file; however you are also free to add your own entries provided you" >> $FILE
	echo "# add the ENV{GENERATED}="1" flag to your own rules as well." >> $FILE
    fi
}


case "$1" in
    configure)
	# Upgrade from lucid
	if dpkg --compare-versions "$2" lt "172-0ubuntu3"; then
	    remove_devices
	fi

	seed_persistent_rules
	invoke-rc.d udev restart
	enable_udevadm

	# 165 changed DB format
	if dpkg --compare-versions "$2" lt-nl "165~"; then
	    udevadm info --convert-db || true
	fi

	update-initramfs -u
	;;

    abort-upgrade|abort-deconfigure|abort-remove)
	;;

    *)
	echo "$0 called with unknown argument \`$1'" 1>&2
	exit 1
	;;
esac

# Automatically added by dh_installinit
update-rc.d -f udev remove >/dev/null || exit $?
# End automatically added section
# Automatically added by dh_installinit
update-rc.d -f udev-finish remove >/dev/null || exit $?
# End automatically added section

exit 0
