#! /bin/sh
set -e

new_config_file()
{
    cat > /etc/python/debian_config <<-EOF
	[DEFAULT]
	# how to byte-compile (comma separated: standard, optimize)
	byte-compile = standard
	EOF
}

case "$1" in
    configure)
	[ -d /etc/python ] || mkdir /etc/python
	[ -f /etc/python/debian_config ] || new_config_file

	# run the rtinstall script, when 2.5 became a supported version
        if [ -x /usr/bin/python2.5 ] && [ -n "$2" ] && dpkg --compare-versions $2 lt 2.4.4-3; then
            if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
		echo "Linking and byte-compiling packages for runtime python2.5..."
            fi
            version=$(dpkg -s python2.5-minimal | awk '/^Version:/ {print $2}')
            for hook in /usr/share/python/runtime.d/*.rtinstall; do
		[ -x $hook ] || continue
		$hook rtinstall python2.5 "$2" "$version"
            done
	fi

	# run the rtinstall script, when 2.6 became a supported version
        if [ -x /usr/bin/python2.6 ] && [ -n "$2" ] && dpkg --compare-versions $2 lt 2.5.4-6; then
            if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
		echo "Linking and byte-compiling packages for runtime python2.6..."
            fi
            version=$(dpkg -s python2.6-minimal | awk '/^Version:/ {print $2}')
            for hook in /usr/share/python/runtime.d/*.rtinstall; do
		[ -x $hook ] || continue
		$hook rtinstall python2.6 "$2" "$version"
            done
	fi

	# run the rtinstall script, when 2.7 became a supported version
        if [ -x /usr/bin/python2.7 ] && [ -n "$2" ] && dpkg --compare-versions $2 lt 2.6.6-13; then
            if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
		echo "Linking and byte-compiling packages for runtime python2.7..."
            fi
            version=$(dpkg -s python2.7-minimal | awk '/^Version:/ {print $2}')
            for hook in /usr/share/python/runtime.d/*.rtinstall; do
		[ -x $hook ] || continue
		$hook rtinstall python2.7 "$2" "$version"
            done
	fi

        if [ -n "$2" ] && dpkg --compare-versions $2 lt 2.7.2-7~; then
	    oldv=$(echo $2 | sed 's/^\(...\).*/\1/')
	    if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
		echo "running python rtupdate hooks for @PVER@..."
	    fi
	    for hook in /usr/share/python/runtime.d/*.rtupdate; do
		[ -x $hook ] || continue
		if ! $hook rtupdate python$oldv @PVER@; then
		    hb=$(basename $hook .rtupdate)
		    echo >&2 "error running python rtupdate hook $hb"
		    errors=yes
		fi
	    done
	    [ -z "$errors" ] || exit 4

	    if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
		echo "running python post-rtupdate hooks for @PVER@..."
	    fi
	    for hook in /usr/share/python/runtime.d/*.rtupdate; do
		[ -x $hook ] || continue
		if ! $hook post-rtupdate python$oldv @PVER@; then
		    hb=$(basename $hook .rtupdate)
		    echo >&2 "error running python post-rtupdate hook $hb"
		    errors=yes
		fi
	    done
	    [ -z "$errors" ] || exit 5
        fi

	if [ -f /var/lib/python/python2.5_already_installed ] \
	   && [ ! -f /var/lib/python/python2.5_installed ]
	then
	    if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
		echo "Linking and byte-compiling packages for runtime python2.5..."
	    fi
	    oldversion=$(cat /var/lib/python/python2.5_already_installed)
	    newversion=$(dpkg -s python2.5-minimal | awk '/^Version:/ {print $2}')
	    for hook in /usr/share/python/runtime.d/*.rtinstall; do
		[ -x $hook ] || continue
		$hook rtinstall python2.5 "$oldversion" "$newversion"
	    done
	fi
	rm -f /var/lib/python/python2.5_already_installed

	if [ -f /var/lib/python/python2.6_already_installed ] \
	   && [ ! -f /var/lib/python/python2.6_installed ]
	then
	    if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
		echo "Linking and byte-compiling packages for runtime python2.6..."
	    fi
	    oldversion=$(cat /var/lib/python/python2.6_already_installed)
	    newversion=$(dpkg -s python2.6-minimal | awk '/^Version:/ {print $2}')
	    for hook in /usr/share/python/runtime.d/*.rtinstall; do
		[ -x $hook ] || continue
		$hook rtinstall python2.6 "$oldversion" "$newversion"
	    done
	fi
	rm -f /var/lib/python/python2.6_already_installed

	if [ -f /var/lib/python/python2.7_already_installed ] \
	   && [ ! -f /var/lib/python/python2.7_installed ]
	then
	    if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
		echo "Linking and byte-compiling packages for runtime python2.7..."
	    fi
	    oldversion=$(cat /var/lib/python/python2.7_already_installed)
	    newversion=$(dpkg -s python2.7-minimal | awk '/^Version:/ {print $2}')
	    for hook in /usr/share/python/runtime.d/*.rtinstall; do
		[ -x $hook ] || continue
		$hook rtinstall python2.7 "$oldversion" "$newversion"
	    done
	fi
	rm -f /var/lib/python/python2.7_already_installed

	rmdir --ignore-fail-on-non-empty /var/lib/python 2>/dev/null || true
esac

#DEBHELPER#
