#!/bin/sh -e

PROG="${0##*/}" #program name

kbd_config=/etc/sysconfig/kbd
keys_list=/usr/share/alterator-x11/x11keys

[ -s "$kbd_config" ] && . "$kbd_config"

print_version()
{
	cat <<EOF
$PROG version 0.0.1

Written by Stanislav Ievlev

Copyright (C) 2004 ALT Linux Team
EOF
	exit
}

print_usage()
{
	[ "$1" = 0 ] || exec >&2
	cat <<EOF
Usage: $PROG [options]

utility to generate X11 keyboard layout settings according current global system settings

Valid options are:
  -h, --help	display help screen
  -v, --version	display version information

Report bugs to <inger@altlinux.org>
EOF
	[ -n "$1" ] && exit "$1" || exit
}


TEMP=`getopt -n $PROG -o h,v -l help,version -- "$@"` || print_usage
eval set -- "$TEMP"

while :; do
	case "$1" in
		-h|--help) print_usage 0
			;;
		-v|--version) print_version
			;;
		--) shift; break
			;;
		*) echo "unrecognized option: $1"
			;;
	esac
	shift
done

[ -z "$LAYOUT" ] && exit 1

xkb_layout=$(cat $keys_list|grep "^$LAYOUT[[:space:]]"|cut -f2)
xkb_options=$(cat $keys_list|grep "^$LAYOUT[[:space:]]"|cut -f3)
[ "$xkb_options" = "undef" ] && xkb_options=""
xkb_variant=$(cat $keys_list|grep "^$LAYOUT[[:space:]]"|cut -f4)
[ "$xkb_variant" = "undef" ] && xkb_variant=""

#echo "layout=$xkb_layout, options=$xkb_options, variant=$xkb_variant"
printf "X11 Driver\t: kbd\n"
[ -n "$xkb_layout" ] && printf "X11 config\t: Option \"XkbLayout\" \"$xkb_layout\"\n"
[ -n "$xkb_options" ] && printf "X11 config\t: Option \"XkbOptions\" \"$xkb_options\"\n"
[ -n "$xkb_variant" ] && printf "X11 config\t: Option \"XkbVariant\" \"$xkb_variant\"\n"
