#!/bin/sh
#
#	$Id: setsysfont 9682 2008-03-26 16:20:21Z glen $
#

[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
[ -f /etc/sysconfig/console ] && . /etc/sysconfig/console

[ -n "$SYSFONT" ] && CONSOLEFONT="$SYSFONT"


charmap=
# /usr might not be mounted
if [ -x /usr/bin/locale ]; then
	charmap=$(LANG="$LANG" locale charmap)
fi

if [ "$charmap" = "UTF-8" ]; then
	if [ -x /bin/unicode_start ] && /sbin/consoletype fg; then
		exec unicode_start $CONSOLEFONT $CONSOLEMAP
	fi
elif [ -x /bin/unicode_stop ] && /sbin/consoletype fg; then
	unicode_stop
fi

# console-tools, obsolete part
if [ -x /usr/bin/consolechars -o -x /bin/consolechars ]; then
	if [ -n "$CONSOLEFONT" ]; then
		consolechars --acm ${CONSOLEMAP:-trivial.trans} --font $CONSOLEFONT
	fi
	if [ -n "$KEYTABLE" ]; then
		loadkeys $KEYTABLE < /dev/tty0 > /dev/tty0
	fi
# kbd, currently used
elif [ -x /usr/bin/setfont -o -x /bin/setfont ]; then
	if [ -n "$CONSOLESCREENFONTMAP" ]; then
		ARGS="-u $CONSOLESCREENFONTMAP"
	fi
	if [ -n "$CONSOLEMAP" ]; then
		if [ ! -f /lib/kbd/consoletrans/${CONSOLEMAP}_to_uni.trans ]; then
			CONSOLEMAP=$(echo "$CONSOLEMAP" | awk '{ gsub(/iso[0]?/,"8859-"); print $0; }')
		fi
		ARGS="$ARGS -m $CONSOLEMAP"
	fi
	if [ -n "$CONSOLEFONT" ]; then
		setfont $CONSOLEFONT $ARGS
	else
		echo -ne "\033(K" 2>/dev/null > /proc/$$/fd/0
	fi
fi

exit 0
