diff options
Diffstat (limited to 'init.d.BSD/moused.in')
-rw-r--r-- | init.d.BSD/moused.in | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/init.d.BSD/moused.in b/init.d.BSD/moused.in new file mode 100644 index 00000000..9e8c20f6 --- /dev/null +++ b/init.d.BSD/moused.in @@ -0,0 +1,62 @@ +#!/sbin/runscript +# Copyright 2007-2008 Roy Marples <roy@marples.name> +# All rights reserved. Released under the 2-clause BSD license. + +mouse=${SVCNAME##*.} +if [ -n "${name}" -a "${mouse}" != "moused" ]; then + moused_device=/dev/"${mouse}" + pidfile=/var/run/moused-"${mouse}".pid +else + pidfile=/var/run/moused.pid +fi +name="Console Mouse Daemon" +[ -n "${moused_device}" ] && name="${name} (${moused_device})" + +depend() +{ + need localmount + after bootmisc + keyword nojail noprefix +} + +start() +{ + ebegin "Starting ${name}" + + if [ -z "${moused_device}" ]; then + local dev= + for dev in /dev/psm[0-9]* /dev/ums[0-9]*; do + [ -c "${dev}" ] || continue + [ -e /var/run/moused-"${dev##*/}".pid ] && continue + moused_device=${dev} + eindent + einfo "Using mouse on ${moused_device}" + eoutdent + break + done + fi + + if [ -z "${moused_device}" ]; then + eend 1 "No mouse device found" + return 1 + fi + + local args= + eval args=\$moused_args_${moused_device##*/} + [ -z "${args}" ] && args=${moused_args} + + start-stop-daemon --start --exec /usr/sbin/moused \ + --pidfile "${pidfile}" \ + -- ${args} -p "${moused_device}" -I "${pidfile}" + local retval=$? + + if [ ${retval} = 0 ]; then + local ttyv= + for ttyv in /dev/ttyv*; do + vidcontrol < "${ttyv}" -m on + : $((retval+= $?)) + done + fi + + eend ${retval} "Failed to start moused" +} |