#!/bin/bash
#
# chkconfig: 2345 85 15
# description: GPM adds mouse support to text-based Linux applications such \
#              as the Midnight Commander. It also allows mouse-based console \
#              cut-and-paste operations, and includes support for pop-up \
#              menus on the console.
# processname: gpm
# pidfile: /var/run/gpm.pid
# config: /etc/sysconfig/mouse

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

if test -e /etc/sysconfig/mouse ; then
    . /etc/sysconfig/mouse
fi

RETVAL=0

start() {
    echo -n $"Starting console mouse services: "

    if [ -z "$MOUSETYPE" ]; then
        MOUSETYPE="exps2"
    fi

    if [ -z "$DEVICE" ]; then
        DEVICE="/dev/input/mice"
    fi

    if [ "$MOUSETYPE" = "none" ]; then
        echo $"(no mouse is configured)"
        exit 0
    fi

    if [ "$MOUSETYPE" = "Microsoft" ]; then
        MOUSETYPE=ms
    fi

    if [ -n "$IMOUSETYPE" ]; then
                if [ "$(pidofproc inputattach)" = "" ]; then
            modprobe sermouse > /dev/null 2>&1
            /usr/sbin/inputattach -$IMOUSETYPE $DEVICE --daemon
            DEVICE="/dev/input/mice"
            MOUSETYPE="exps2"
        fi
        fi

    if [ -n "$MOUSETYPE" ]; then
        daemon gpm -m $DEVICE -t $MOUSETYPE $OPTIONS
    else
        daemon gpm -m $DEVICE $OPTIONS
    fi
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gpm
}

stop() {
    echo -n $"Shutting down console mouse services: "
    killproc gpm
    if [ -n "$IMOUSETYPE" ]; then
        killproc inputattach
    fi
    RETVAL=$?

    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gpm
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart|reload)
    stop
    start
    ;;
  condrestart)
    if [ -f /var/lock/subsys/gpm ]; then
        stop
        start
    fi
    ;;
  status)
    status gpm
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|condrestart|status}"
    exit 1
esac

exit $RETVAL