#!/bin/sh
### BEGIN INIT INFO
# chkconfig: 235 19 80
# Provides:       keyman-filter
# Required-Start:
# Required-Stop:
# X-SuSE-Should-Start:
# X-SuSE-Should-Stop:
# Default-Start:  1 2 3 5 S
# Default-Stop:
# Description:    Keyboard settings for cherry keyboards and the keyman tool
### END INIT INFO

LOGFILE=/var/log/keymanfilter
echo "" > $LOGFILE
CFG_FILE=/etc/keyman/CyMotion_Master
if test -e $CFG_FILE ; then
	. $CFG_FILE
else
	echo "$CFG_FILE not found. Can't map PS/2 keyboard keys!" >> $LOGFILE
fi

export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin

case "$1" in
	start)
		echo -n "Starting keyman input filter ..."
		if test -z `pidof keymaninputfilter` ; then
			setkeymanscancode >& /dev/null
			uinp=`lsmod | grep uinput`
			if test -z "$uinp" ; then
				modprobe uinput
				if test "$?" -ne 0 ; then
					echo "Failed (No uinput kernel module compiled?)"
				fi
			fi
			if test \! -z "$maptable" ; then
				isetkeycode --device ps2 $maptable >> $LOGFILE 2>&1
			else
				echo "Can't map PS/2 keyboard keys because no 'maptable' in ${CFG_FILE}!" >> $LOGFILE
			fi
			keymaninputfilter >> $LOGFILE 2>&1
			echo "Done"
		else
			echo "already running"
		fi
		;;
	stop)
		echo "Stopping keyman input filter ..."
		killall keymaninputfilter >&/dev/null
		;;
	restart)
		$0 stop
		sleep 4
		$0 start
		;;
	force-reload)
		$0 stop
		sleep 4
		$0 start
		;;
	reload)
		$0 stop
		sleep 4
		$0 start
		;;
	status)
		;;
	*)
		echo "Usage: $0 {start|stop|status|restart|force-reload|reload|probe}"
		exit 1
		;;
esac
exit 0
