cvsdist 7b28834
#!/bin/bash
cvsdist 7b28834
#
Zdenek Prikryl c19a4ca
# chkconfig: 2345 85 15
cvsdist 7b28834
# description: GPM adds mouse support to text-based Linux applications such \
cvsdist c78d088
#              as the Midnight Commander. It also allows mouse-based console \
cvsdist 7b28834
#              cut-and-paste operations, and includes support for pop-up \
cvsdist 7b28834
#              menus on the console.
cvsdist 7b28834
# processname: gpm
cvsdist 7b28834
# pidfile: /var/run/gpm.pid
99f5665
# config: /etc/sysconfig/mouse
cvsdist 7b28834
Zdenek Prikryl 5b9f257
### BEGIN INIT INFO
Zdenek Prikryl 5b9f257
# Provides: gpm
Zdenek Prikryl 5b9f257
# Required-Start: $syslog $local_fs
Zdenek Prikryl 5b9f257
# Required-Stop: $syslog $local_fs
Zdenek Prikryl 5b9f257
# Default-Start:  2 3 4 5
Zdenek Prikryl 5b9f257
# Default-Stop: 0 1 6
Zdenek Prikryl 5b9f257
# Short-Description: Start and stop gpm daemon
Zdenek Prikryl f068134
# Description: GPM adds mouse support to text-based Linux applications such
Zdenek Prikryl f068134
#              as the Midnight Commander. It also allows mouse-based console
Zdenek Prikryl f068134
#              cut-and-paste operations, and includes support for pop-up
Zdenek Prikryl 5b9f257
#              menus on the console.
Zdenek Prikryl 5b9f257
### END INIT INFO
Zdenek Prikryl 5b9f257
cvsdist 7b28834
# source function library
cvsdist 7b28834
. /etc/init.d/functions
cvsdist 7b28834
Florian La Roche 08dcf69
if test -e /etc/sysconfig/mouse ; then
Florian La Roche 08dcf69
    . /etc/sysconfig/mouse
Florian La Roche 08dcf69
fi
cvsdist 7b28834
cvsdist 7b28834
RETVAL=0
cvsdist 7b28834
Zdenek Prikryl 5b9f257
check() {
Zdenek Prikryl 5b9f257
	# Check that we're a privileged user
Zdenek Prikryl 5b9f257
	[ `id -u` = 0 ] || exit 4
Zdenek Prikryl 5b9f257
	
Zdenek Prikryl 5b9f257
	# Check if acpid is executable
Zdenek Prikryl 5b9f257
	test -x /usr/sbin/gpm || exit 5
Zdenek Prikryl 5b9f257
}
cvsdist 7b28834
Zdenek Prikryl 5b9f257
start() {
cvsdist 7b28834
Zdenek Prikryl 5b9f257
	check
Zdenek Prikryl 5b9f257
		
Zdenek Prikryl 5b9f257
	if [ ! -f /var/lock/subsys/gpm ]; then
Zdenek Prikryl 5b9f257
		echo -n $"Starting console mouse services: "
Zdenek Prikryl 5b9f257
	
Zdenek Prikryl 5b9f257
		if [ -z "$MOUSETYPE" ]; then
Zdenek Prikryl 5b9f257
		    MOUSETYPE="exps2"
havill 1959126
		fi
Zdenek Prikryl 5b9f257
	
Zdenek Prikryl 5b9f257
		if [ -z "$DEVICE" ]; then
Zdenek Prikryl 5b9f257
		    DEVICE="/dev/input/mice"
Zdenek Prikryl 5b9f257
		fi
Zdenek Prikryl 5b9f257
	
Zdenek Prikryl 5b9f257
		if [ "$MOUSETYPE" = "none" ]; then
Zdenek Prikryl 5b9f257
			echo $"(no mouse is configured)"
Zdenek Prikryl 5b9f257
			exit 0
Zdenek Prikryl 5b9f257
		fi
Zdenek Prikryl 5b9f257
	
Zdenek Prikryl 5b9f257
		if [ "$MOUSETYPE" = "Microsoft" ]; then
Zdenek Prikryl 5b9f257
			MOUSETYPE=ms
Zdenek Prikryl 5b9f257
		fi
Zdenek Prikryl 5b9f257
	
Zdenek Prikryl 5b9f257
		if [ -n "$IMOUSETYPE" ]; then
Zdenek Prikryl 5b9f257
			if [ "$(pidofproc inputattach)" = "" ]; then
Zdenek Prikryl 5b9f257
				modprobe sermouse > /dev/null 2>&1
Zdenek Prikryl 5b9f257
				/usr/sbin/inputattach -$IMOUSETYPE $DEVICE --daemon
Zdenek Prikryl 5b9f257
				DEVICE="/dev/input/mice"
Zdenek Prikryl 5b9f257
				MOUSETYPE="exps2"
Zdenek Prikryl 5b9f257
			fi
Zdenek Prikryl 5b9f257
		fi
Zdenek Prikryl 5b9f257
	
Zdenek Prikryl 5b9f257
		if [ -n "$MOUSETYPE" ]; then
Zdenek Prikryl 5b9f257
			daemon /usr/sbin/gpm -m $DEVICE -t $MOUSETYPE $OPTIONS
Zdenek Prikryl 5b9f257
		else
Zdenek Prikryl 5b9f257
			daemon /usr/sbin/gpm -m $DEVICE $OPTIONS
Zdenek Prikryl 5b9f257
		fi
Zdenek Prikryl 5b9f257
		RETVAL=$?
Zdenek Prikryl 5b9f257
		[ $RETVAL -eq 0 ] && touch /var/lock/subsys/gpm
Zdenek Prikryl 5b9f257
		echo
cvsdist 7b28834
	fi
Zdenek Prikryl 5b9f257
	return $RETVAL
cvsdist 7b28834
}
cvsdist 7b28834
cvsdist 7b28834
stop() {
Zdenek Prikryl 5b9f257
	
Zdenek Prikryl 5b9f257
	check
Zdenek Prikryl 5b9f257
	
cvsdist 84a7019
	echo -n $"Shutting down console mouse services: "
Zdenek Prikryl 5b9f257
	killproc /usr/sbin/gpm
havill 1959126
	if [ -n "$IMOUSETYPE" ]; then
havill 1959126
		killproc inputattach
havill 1959126
	fi
cvsdist 7b28834
	RETVAL=$?
cvsdist 7b28834
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gpm
Zdenek Prikryl 5b9f257
	echo
Zdenek Prikryl 5b9f257
	return $RETVAL
Zdenek Prikryl 5b9f257
}
Zdenek Prikryl 5b9f257
Zdenek Prikryl 5b9f257
restart() {
Zdenek Prikryl 5b9f257
	stop
Zdenek Prikryl 5b9f257
	start
cvsdist 7b28834
}
cvsdist 7b28834
cvsdist 7b28834
case "$1" in
cvsdist 7b28834
  start)
cvsdist 7b28834
	start
cvsdist 7b28834
	;;
cvsdist 7b28834
  stop)
cvsdist 7b28834
	stop
cvsdist 7b28834
	;;
Nikola Pajkovsky 468ffb4
  force-reload|reload|try-restart)
Zdenek Prikryl 5b9f257
	echo "$0: Unimplemented feature."
Zdenek Prikryl 5b9f257
	RETVAL=3
Zdenek Prikryl 5b9f257
	;;
Zdenek Prikryl 5b9f257
  restart)
Zdenek Prikryl 5b9f257
	restart
cvsdist 7b28834
	;;
cvsdist 7b28834
  condrestart)
cvsdist 7b28834
	if [ -f /var/lock/subsys/gpm ]; then
Zdenek Prikryl 5b9f257
	    restart
cvsdist 7b28834
	fi
cvsdist 7b28834
	;;
cvsdist 7b28834
  status)
cvsdist 7b28834
	status gpm
cvsdist 7b28834
	RETVAL=$?
cvsdist 7b28834
	;;
cvsdist 7b28834
  *)
Nikola Pajkovsky 468ffb4
	echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload|try-restart}"
Zdenek Prikryl 5b9f257
	RETVAL=2
cvsdist 7b28834
esac
cvsdist 7b28834
cvsdist 7b28834
exit $RETVAL