#! /bin/sh
# Copyright (c) 2000-2003 International Business Machines
# Corporation and others. All Rights Reserved.
# prerm script for foo
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <prerm> `remove'
#        * <old-prerm> `upgrade' <new-version>
#        * <new-prerm> `failed-upgrade' <old-version>
#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
#        * <deconfigured's-prerm> `deconfigure' `in-favour'
#          <package-being-installed> <version> `removing'
#          <conflicting-package> <version>
# for details, see /usr/share/doc/packaging-manual/

case "$1" in
    remove|upgrade|deconfigure)
	# Adjust the current ICU link in @libdir@/@PACKAGE@

	prefix=@prefix@
	exec_prefix=@exec_prefix@

	if [ -d @libdir@/@PACKAGE@ ]
	then
	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
	    cd @libdir@/@PACKAGE@
	    rm -f current
	    if test x"$icucurrent" != x
	    then
	        ln -s "$icucurrent" current
	    fi
	fi

#       install-info --quiet --remove /usr/info/foo.info.gz
        ;;
    failed-upgrade)
        ;;
    *)
        echo "prerm called with unknown argument \`$1'" >&2
        exit 0
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

exit 0


