#!/bin/sh

. /usr/share/alterator/build/backend3.sh


XKB_DATADIR=/etc/alterator/syskbd/data

KBD_CONFIG=/etc/sysconfig/keyboard
XKB_CONFIG=/etc/X11/xinit/Xkbmap

on_message()
{
	case "$in_action" in
		list)
			local language=${in_language%%;*}
			echo "("
			[ -d "$XKB_DATADIR/$language" ] &&
				find "$XKB_DATADIR/$language" -name '*.xkb'|
					sed -r "s,$XKB_DATADIR/$language/([^/]+).xkb,(\"\1\"),"
			echo ")"
			;;
		write)
			local language=${in_language%%;*}
			local path="$XKB_DATADIR/$language/$in__objects"
			install -Dpm644 "$path.xkb" "$XKB_CONFIG" &&
			install -Dpm644 "$path.kbd" "$KBD_CONFIG" &&
			/usr/bin/setxkbmap -option "" &&
			/usr/bin/setxkbmap `cat "$XKB_CONFIG"`
			echo "()"
			;;
		*)
			echo '#f'
			;;
	esac
}


message_loop


