#!/bin/sh
# $Id: km,v 1.6 2007/09/23 08:23:54 tpowa Exp $

ANSWER="/tmp/.km"
PATH=$PATH:/tmp/bin:/tmp/usr/bin:/tmp/sbin:/tmp/usr/sbin

BASEDIR="/usr/share/kbd"

domenu()
{
	menutype=$1 ; shift
	text=$1     ; shift
	height=$1   ; shift
	width=$1    ; shift
	mheight=$1  ; shift
	
	dialog --cancel-label "Skip" --$menutype "$text" $height $width $mheight $*
}

if [ ! -d $BASEDIR/keymaps ]; then
	echo "Cannot load keymaps, as none were found in $BASEDIR/keymaps" >&2
	exit 1
else
	echo "Scanning for keymaps..."
	KEYMAPS=
	for i in `find $BASEDIR/keymaps -follow -name "*.gz" | sed 's|^.*/||g' | sort`; do
		KEYMAPS="$KEYMAPS $i -"
	done
	domenu menu "Select A Keymap" 22 60 16 $KEYMAPS 2>$ANSWER
	keymap=`cat $ANSWER`
	echo $keymap > /tmp/.keymap
fi

if [ ! -d $BASEDIR/consolefonts ]; then
	echo "Cannot load consolefonts, as none were found in $BASEDIR/consolefonts" >&2
else
	echo "Scanning for fonts..."
	FONTS=
	# skip .cp.gz and partialfonts files for now see bug #6112, #6111
	for i in `find $BASEDIR/consolefonts -maxdepth 1 ! -name '*.cp.gz' -name "*.gz"  | sed 's|^.*/||g' | sort`; do
		FONTS="$FONTS $i -"
	done
	domenu menu "Select A Console Font" 22 60 16 $FONTS 2>$ANSWER
	font=`cat $ANSWER`
	echo $font > /tmp/.font
fi

if [ "$keymap" ]; then
	echo "Loading keymap: $keymap"
	loadkeys -q $BASEDIR/keymaps/$keymap
fi

if [ "$font" ]; then
	echo "Loading font: $font"
	for i in `seq 1 4`; do
		if [ -d /dev/vc ]; then
			setfont $BASEDIR/consolefonts/$font -C /dev/vc/${i}
		else
			setfont $BASEDIR/consolefonts/$font -C /dev/tty${i}
		fi
	done
fi

clear
exit 0

