#! /bin/sh -e

syssite=/usr/lib/@PVER@/site-packages
localsite=/usr/local/lib/@PVER@/dist-packages

remove_bytecode()
{
    pkg=$1
    max=$(LANG=C LC_ALL=C xargs --show-limits < /dev/null 2>&1 | awk '/Maximum/ {print int($NF / 4)}')
    dpkg -L $pkg \
	| awk -F/ 'BEGIN {OFS="/"} /\.py$/ {$NF=sprintf("__pycache__/%s.*.py[co]", substr($NF,1,length($NF)-3)); print}' \
	| xargs --max-chars="$max" echo \
	| while read files; do rm -f $files; done
    find /usr/lib/python3 /usr/lib/@PVER@ -name dist-packages -prune -o -name __pycache__ -empty -print \
	| xargs -r rm -rf
}

case "$1" in
    remove)
	if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
	    echo "Unlinking and removing bytecode for runtime @PVER@"
	fi
	for hook in /usr/share/python3/runtime.d/*.rtremove; do
	    [ -x $hook ] || continue
	    $hook rtremove @PVER@ || continue
	done

	remove_bytecode @PVER@-minimal

	if which update-binfmts >/dev/null; then
	    update-binfmts --package @PVER@ --remove @PVER@ /usr/bin/@PVER@
	fi

	if [ -h $syssite ]; then
	    rm -f $syssite
	fi
	[ -d $localsite ] && rmdir $localsite 2>/dev/null || true
	[ -d $(dirname $localsite) ] && rmdir $(dirname $localsite) 2>/dev/null || true
        ;;
    upgrade)
	remove_bytecode @PVER@-minimal
        ;;
    deconfigure)
        ;;
    failed-upgrade)
        ;;
    *)
        echo "prerm called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

#DEBHELPER#
