#! /bin/sh

set -e

. /usr/share/debconf/confmodule

ARCH=`udpkg --print-architecture`

modify_cyrconfig() {
	if [ "$2" ]; then
		sed -e "s/^$1 .*\$/$1 $2/" \
		    $cyrconfig > $cyrconfig.tmp && \
		    mv $cyrconfig.tmp $cyrconfig
	fi
}

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)
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
		if [ -n "$acm" ]; then
			echo "APP_CHARSET_MAP=$acm" >>$ctconfig
			echo "APP_CHARSET_MAP_vc1=$acm" >>$ctconfig
			echo "APP_CHARSET_MAP_vc2=$acm" >>$ctconfig
			echo "APP_CHARSET_MAP_vc3=$acm" >>$ctconfig
			echo "APP_CHARSET_MAP_vc4=$acm" >>$ctconfig
			echo "APP_CHARSET_MAP_vc5=$acm" >>$ctconfig
			echo "APP_CHARSET_MAP_vc6=$acm" >>$ctconfig
		fi
		consolefont=`echo $consolefont | sed -e 's/(.*//'`
		if [ -n "$consolefont" ]; then
			echo "SCREEN_FONT=$consolefont" >>$ctconfig
			echo "SCREEN_FONT_vc2=$consolefont" >>$ctconfig
			echo "SCREEN_FONT_vc3=$consolefont" >>$ctconfig
			echo "SCREEN_FONT_vc4=$consolefont" >>$ctconfig
			echo "SCREEN_FONT_vc5=$consolefont" >>$ctconfig
			echo "SCREEN_FONT_vc6=$consolefont" >>$ctconfig
		fi
		if echo "$consolefont" | grep -q "Terminus"; then
			apt-install console-terminus || true
		fi
	fi
	;;
    cyr)
	consolefont=`echo $RET | sed -e 's/^cyr=//'`
	if apt-install console-cyrillic; then
		cyrconfig=/target/etc/console-cyrillic
		# format of the consolefont is:
		# style,size,encoding,layout(option1 option2)
		style=`echo $consolefont | sed -e 's/,.*$//'`
		size=`echo $consolefont | sed -e 's/^[^,]*,\([^,]*\),.*$/\1/'`
		encoding=`echo $consolefont | sed -e 's/^[^,]*,[^,]*,\([^,]*\),.*$/\1/'`
		layoutopts=`echo $consolefont | sed -e 's/^[^,]*,[^,]*,[^,]*,\([^)]*)\).*$/\1/'`
		layout=`echo $layoutopts | sed -e 's/(.*)$//'`
		options=`echo $layoutopts | sed -e 's/.*(//' -e 's/).*//'`
		modify_cyrconfig style "$style"
		modify_cyrconfig size "$size"
		modify_cyrconfig encoding "$encoding"
		modify_cyrconfig layout "$layout"
		modify_cyrconfig options "$options"
		sed -e 's/^.*Bootsetup: .*$/# Bootsetup: YES/' $cyrconfig > $cyrconfig.tmp && \
		    mv $cyrconfig.tmp $cyrconfig
		sed -e 's/^.*Debconf: .*$/# Debconf: NO/' $cyrconfig > $cyrconfig.tmp && \
		    mv $cyrconfig.tmp $cyrconfig
	fi
	;;
esac

exit 0
