#!/bin/sh

if [ -n "$BASH_VERSION" ]; then
	use_escapes="-e"
else
	use_escapes=""
fi

clear
echo "                           KEYBOARD CONFIGURATION"
echo "                           ======================"
echo


KMAPDIR=/etc/keytables

cd $KMAPDIR

# Recover from being bounced by symlinks...
KMAPDIR=`pwd`

echo
echo "Available keyboard maps:"
echo
ls -C
echo

kmap=
while [ ! -f "$kmap" -a "$kmap" != "quit" ]
do
	echo -n "Enter keyboard map (blank for list): "
	read kmap
	if [ -z "$kmap" ]; then
		echo
		echo "Available keyboard maps:"
		echo
		ls -C
		echo
	elif [ -d "$kmap" ]; then
		case "$kmap" in
			/*)
				echo
				echo "Absolute path names aren't allowed!"
				echo
				kmap=
				;;
			..*|./..*)
				if [ "`pwd`" = $KMAPDIR ]; then
					echo
					echo "Already in the top directory"
					echo
					kmap=
				else
					cd $kmap
					echo
					echo "Available keybaord maps:"
					echo
					ls -C
					echo
				fi
				;;
			*)
				cd $kmap
				echo
				echo "Keyboard map $zone contains the following variants"
				echo
				ls -C
				echo
				;;
		esac
	elif [ ! -f "$kmap" -a "$kmap" != "quit" ]; then
		echo
		echo "Invalid keyboard map: $kmap"
		echo
	fi
	
done

if [ "$kmap" != "quit" ]; then
	echo `pwd`/$kmap | sed -e "s\\^$KMAPDIR/\\\\" > /etc/default/keyboard

	echo
	echo "Keyboard map on this machine is set to $kmap"
	echo
fi

echo
echo "Changes will only take effect from the next reboot..."
