#!/bin/bash
#
# hotplug This scripts starts Cherry Point Of Sale Keyboard module
#
### BEGIN INIT INFO
# Provides:       chyposusb
# Required-Start:
# X-UnitedLinux-Should-Start:
# Required-Stop:
# X-UnitedLinux-Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:  0 1 6
# Short-Description:   enables cherry keyboard
# Description:
### END INIT INFO
 
group="users"
mode='666'
kbd_mod="chyposusbkbd"
msr_mod="chyposusbmsr"
 
case "$1" in
	start)
		echo -n "Starting Cherry USB services ["
		/sbin/rmmod usbhid 1>/dev/null 2>&1
		/sbin/rmmod hid 1>/dev/null 2>&1
		/sbin/rmmod $msr_mod 1>/dev/null 2>&1
		/sbin/rmmod $kbd_mod 1>/dev/null 2>&1
		/sbin/modprobe $kbd_mod 
		/sbin/modprobe $msr_mod
		/sbin/modprobe usbhid 1>/dev/null 2>&1
		/sbin/modprobe hid 1>/dev/null 2>&1
		major=`awk "\\$2==\"$kbd_mod\" { print \\$1 }" /proc/devices`
		mknod /dev/chyposusb_kbdstat c $major 0 || error "mknod /dev/chyposusb_kbdstat"
		mknod /dev/chyposusb_keyboard c $major 1 || error "mknod /dev/chyposusb_keyboard"
		major=`awk "\\$2==\"$msr_mod\" { print \\$1 }" /proc/devices`
		mknod /dev/chyposusb_msrstat c $major 3 || error "mknod /dev/chyposusb_msrstat"
		mknod /dev/chyposusb_msr1 c $major 4 || error "mknod /dev/chyposusb_msr1"
		mknod /dev/chyposusb_msr2 c $major 5 || error "mknod /dev/chyposusb_msr2"
		mknod /dev/chyposusb_msr3 c $major 6 || error "mknod /dev/chyposusb_msr3"
		mknod /dev/chyposusb_keylock c $major 7 || error "mknod /dev/chyposusb_keylock"
		# give appropriate group/permissions, and change the group
		# Not all distributions have staff; some have "users" instead.
		group="staff"
		grep '^staff:' /etc/group > /dev/null || group="users"
		chgrp $group /dev/chyposusb_*
		chmod $mode /dev/chyposusb_*
		echo  " ]"
		;;
	stop)
		echo -n "Stopping Cherry services "
		/sbin/rmmod usbhid 1>/dev/null 2>&1
		/sbin/rmmod hid 1>/dev/null 2>&1
		/sbin/rmmod $msr_mod
		/sbin/rmmod $kbd_mod
		/sbin/modprobe usbhid 1>/dev/null 2>&1
		/sbin/modprobe hid 1>/dev/null 2>&1
		echo -n " ]"
		;;
	try-restart)
		echo -n "try restart Cherry services"
		$0 status >/dev/null &&  $0 restart
		;;
	restart|force-reload)
		echo -n "restart|force reload Cherry services"
		$0 stop
		$0 start
		;;
	reload)
		echo -n "reload Cherry services"
		;;
	status)
		echo -n "Checking for hotplugging services "
		;;
	*)
		echo $"Usage: $0 {start|stop|[try-]restart|[force-]reload|status}"
		;;
esac

