#!/bin/ksh
################################################################################
# Name: /IBM/bin/nvKeyboard
# Purpose: Allows the user to select the keyboard language to be used by all
#          clients
################################################################################

################################################################################
# modifyXF86Config
################################################################################
function modifyXF86Config
{
	# Need to modify /etc/X11/XF86Config.FBDev
	FILE="/etc/X11/XF86Config.FBDev"

        if [ -f $FILE.orig ]; then
		rm -f $FILE.orig
	fi
	cp $FILE $FILE.orig

	if [ -f /tmp/xf86config.tmp ]; then
	        rm -f /tmp/xf86config.tmp
	fi

	sed 's/\"xfree86[(].*[)]\"/\"xfree86\('$KEYMAP'\)\"/' $FILE > /tmp/xf86config.tmp

	mv /tmp/xf86config.tmp $FILE
	echo -e "\nUpdated /etc/X11/XF86Config.FBDev"
}
################################################################################
# modify2800
################################################################################
function modify2800
{
	# Need to modify /etc/sysconfig/keyboard.2800
        FILE="/etc/sysconfig/keyboard.2800"
        if [ -f $FILE.orig ]; then
		rm -f $FILE.orig
	fi
	cp $FILE $FILE.orig

	if [ -f /tmp/keyboard_2800 ]; then
		rm -f /tmp/keyboard_2800
	fi

	sed 's/keytables\/.*\.map/keytables\/'$KEYMAP'\.map/' $FILE > /tmp/keyboard_2800

	mv /tmp/keyboard_2800 $FILE
	echo -e "\nUpdated /etc/sysconfig/keyboard.2800"
}

################################################################################
# modify2200
################################################################################
function modify2200
{
	# Need to modify /etc/sysconfig/keyboard.2200
        FILE="/etc/sysconfig/keyboard.2200"
        if [ -f $FILE.orig ]; then
		rm -f $FILE.orig
	fi
	cp $FILE $FILE.orig

	if [ -f /tmp/keyboard_2200 ]; then
		rm -f /tmp/keyboard_2200
	fi

	sed 's/keytables\/.*\.map/keytables\/'$KEYMAP'\.map/' $FILE > /tmp/keyboard_2200

	mv /tmp/keyboard_2200 $FILE
	echo -e "\nUpdated /etc/sysconfig/keyboard.2200"
}

################################################################################
# Main Body
################################################################################
clear

echo -e "\nWelcome to the IBM NetVista Linux Thin Client Keyboard Selection Utility\n"

# The default keymap is ENGLISH_US
KEYMAP="us"

# A "pretty print" list of the available languages
ENGLISH_US="English (US)"
GERMAN="German"
FRENCH="French"
SPANISH="Spanish"
ITALIAN="Italian"
NORWEGIAN="Norwegian"
FINNISH="Finnish"
PORTUGUESE="Portuguese"
DANISH="Danish"
BELGIAN="Belgian (French)"
FRENCH_CANADIAN="French Canadian (1992)"
SWISS_FRENCH_GERMAN_FR="Swiss, French/German (French)"
SWISS_FRENCH_GERMAN_DE="Swiss, French/German (German)"
PORTUGUESE_BRAZIL="Portuguese (Brazil)"
ENGLISH_UK="English (UK)"
SWEDISH="Swedish"
ENGLISH_ISO="English (US ISO)"

# Change the prompt and then ask the user which language the keyboard should be
PS3="Select the Number for Your Keyboard Language: "
select i in "$ENGLISH_US" "$GERMAN" "$FRENCH" "$SPANISH" "$ITALIAN" "$NORWEGIAN" "$FINNISH" "$PORTUGUESE" "$DANISH" "$BELGIAN" "$FRENCH_CANADIAN" "$SWISS_FRENCH_GERMAN_FR" "$SWISS_FRENCH_GERMAN_DE" "$PORTUGUESE_BRAZIL" "$ENGLISH_UK" "$SWEDISH" "$ENGLISH_ISO" "Quit"
do
	case $i in
		"$ENGLISH_US") KEYMAP="us"; break;;
		"$GERMAN") KEYMAP="de"; break;;
		"$FRENCH") KEYMAP="fr"; break;;
		"$SPANISH") KEYMAP="es"; break;;
		"$ITALIAN") KEYMAP="it"; break;;
		"$NORWEGIAN") KEYMAP="no"; break;;
		"$FINNISH") KEYMAP="se_FI"; break;;
		"$PORTUGUESE") KEYMAP="pt"; break;;
		"$DANISH") KEYMAP="dk"; break;;
		"$BELGIAN") KEYMAP="be"; break;;
		"$FRENCH_CANADIAN") KEYMAP="fr_CA"; break;;
		"$SWISS_FRENCH_GERMAN_FR") KEYMAP="fr_CH"; break;;
		"$SWISS_FRENCH_GERMAN_DE") KEYMAP="de_CH"; break;;
		"$PORTUGUESE_BRAZIL") KEYMAP="pt_BR"; break;;
		"$ENGLISH_UK") KEYMAP="gb"; break;;
		"$SWEDISH") KEYMAP="se_SE"; break;;
		"$ENGLISH_ISO") KEYMAP="en_US"; break;;
		"Quit") echo ""; exit;;
	esac
done

echo ""

modifyXF86Config;
modify2800;
modify2200;

echo -e "\nRestart X, or reboot, for the changes to become active.\n"
