#! /bin/sh

set -e

. /usr/share/debconf/confmodule

ARCH=`udpkg --print-architecture`

db_get debian-installer/locale
LOCALE="$RET"

# Set locale to C if it has not yet been set
# This can happen during e.g. s390 installs where localechooser is not run
[ -z "$LOCALE" ] && LOCALE="C"

LANGUAGE=${LOCALE%%_*}

# Install specific packages depending on selected language

if [ "$LOCALE" != "C" ] ; then
	# Other language specific packages
	case "$LANGUAGE" in
	    ar|he|fa)
		# RTL languages (Arabic, Hebrew, Farsi)
		apt-install libfribidi0 || true
		;;
	esac
fi

# Install localization-config except when no localization happens
# Install it anyway for powerpc (to handle subarches)
# Disabled for etch as l-c is not ready
#if [ "$LOCALE" != "C" ] || [ "$ARCH" = "powerpc" ]; then
#        apt-install localization-config || true
#fi


db_get debian-installer/consoledisplay || true
consoletype=$(echo $RET | sed -e 's/=.*$//')
case "$consoletype" in
    kbd)
	consolefont=$(echo $RET | sed -e 's/^kbd=//')
	if apt-install console-tools; then
		ctconfig=/target/etc/console-tools/config
		acm=$(echo $consolefont | sed -e 's/.*(//' -e 's/).*//')
		[ "$acm" = utf8 ] && acm=
		# A few workarounds of console-tools limitations below
		# APP_CHARSET_MAP and console fonts are not set
		# for all consoles. These workarounds should probably
		# be removed when we switch to kbd
		# FIXME: why 1-6 for APP_CHARSET_MAP but 2-6 for SCREEN_FONT?
		if [ -n "$acm" ]; then
			echo "APP_CHARSET_MAP=$acm" >>$ctconfig
			for i in 1 2 3 4 5 6; do
				echo "APP_CHARSET_MAP_vc$i=$acm" >>$ctconfig
			done
		fi
		consolefont=$(echo $consolefont | sed -e 's/(.*//')
		if [ -n "$consolefont" ]; then
			echo "SCREEN_FONT=$consolefont" >>$ctconfig
			for i in 2 3 4 5 6; do
				echo "SCREEN_FONT_vc$i=$consolefont" >>$ctconfig
			done
		fi
		if echo "$consolefont" | grep -q "Terminus"; then
			apt-install console-terminus || true
		fi
	fi
	;;
    cyr)
	apt-install console-cyrillic || true
	;;
    console-setup)
	apt-install console-setup || true
	db_set debian-installer/keymap '' || true
	;;
esac

exit 0
