#! /bin/bash
#
# ibmasm          Start/Stop ibmasm driver.
#
# chkconfig: - 50 50
# description: The IBM Advanced System Management Device Drivers allow\
#       software to interact with the Advanced System Management\
#       Processor or Adapter.

# Source function library.
. /etc/init.d/functions

RETVAL=0
prog=ibmsphalt
pidfile="/var/run/ibmsphalt.pid"
lockfile="/var/lock/subsys/ibmsphalt"

start() {
	echo -n $"Starting $prog: "
	if [ -n "$(pidofproc ibmsphalt)" ]; then
		echo -n $"$prog: already running"
		echo_failure
		echo
		return 1
	fi
	# Make sure the module (ibmasm) is loaded and its fs is exported.
	if grep -v -q ibmasmfs /proc/filesystems; then
		modprobe ibmasm || exit 1
	fi

	echo -en "\nWaiting for ibmasm device to appear (10 seconds timeout)"
	TIMEOUT=10
	for ((i=0; i<$TIMEOUT; i++)); do
		DEVICE=`/usr/bin/evnode -n "ibmasm RSA I remote mouse"`
		if [ ! -z $DEVICE ]; then 
			TIMEOUT="ok"
			break; 
		fi
		echo -n ". "
		sleep 1
	done
	# Check the timeout. If not changed, then no device found.
	if [ $TIMEOUT == "10" ]; then
		echo -en "No device detected. Aborted."
		echo_failure
		echo
		return 1
	fi
	# Mount the fs.
	mount -t ibmasmfs ibmasm /var/lib/ibmasm
	daemon /usr/sbin/$prog
	RETVAL=$?
 	[ $RETVAL -eq 0 ] && touch $lockfile
	[ $RETVAL -eq 0 ] && echo_success
	[ $RETVAL -ne 0 ] && echo_failure
	echo
	return $RETVAL
}

stop() {
	echo -n $"Stopping ibmasm: "
	killproc $prog
	RETVAL=$?
	/bin/umount /var/lib/ibmasm 2>/dev/null
	/sbin/modprobe -q -r ibmasm
	echo
	[ $RETVAL -eq 0 ] && rm -f $lockfile $pidfile
	return $RETVAL
}	


restart() {
  	stop
	start
}	

case "$1" in
  start)
  	start
	;;
  stop)
  	stop
	;;
  restart)
  	restart
	;;
  status)
  	status $prog
	RETVAL=$?
	;;
  condrestart)
  	[ -f $lockfile ] && restart || :
	;;
  *)
	echo $"Usage: $0 {start|stop|status|restart|condrestart}"
	exit 1
esac
