summaryrefslogtreecommitdiffstats
path: root/etc/rc.d/moused
diff options
context:
space:
mode:
Diffstat (limited to 'etc/rc.d/moused')
-rwxr-xr-xetc/rc.d/moused72
1 files changed, 72 insertions, 0 deletions
diff --git a/etc/rc.d/moused b/etc/rc.d/moused
new file mode 100755
index 0000000..57419a0
--- /dev/null
+++ b/etc/rc.d/moused
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: moused
+# REQUIRE: DAEMON FILESYSTEMS
+# KEYWORD: nojail shutdown
+
+. /etc/rc.subr
+
+name="moused"
+rcvar="moused_enable"
+command="/usr/sbin/${name}"
+start_cmd="moused_start"
+pidprefix="/var/run/moused"
+pidfile="${pidprefix}.pid"
+pidarg=
+load_rc_config $name
+
+# Set the pid file and variable name. The second argument, if it exists, is
+# expected to be the mouse device.
+#
+if [ -n "$2" ]; then
+ eval moused_$2_enable=\${moused_$2_enable-${moused_nondefault_enable}}
+ rcvar="moused_${2}_enable"
+ pidfile="${pidprefix}.$2.pid"
+ pidarg="-I $pidfile"
+fi
+
+moused_start()
+{
+ local ms myflags myport mytype
+
+ # Set the mouse device and get any related variables. If
+ # a moused device has been specified on the commandline, then
+ # rc.conf(5) variables defined for that device take precedence
+ # over the generic moused_* variables. The only exception is
+ # the moused_port variable, which if not defined sets it to the
+ # passed in device name.
+ #
+ ms=$1
+ if [ -n "$ms" ]; then
+ eval myflags=\${moused_${ms}_flags-$moused_flags}
+ eval myport=\${moused_${ms}_port-/dev/$ms}
+ eval mytype=\${moused_${ms}_type-$moused_type}
+ else
+ ms="default"
+ myflags="$moused_flags"
+ myport="$moused_port"
+ mytype="$moused_type"
+ fi
+
+ check_startmsgs && echo -n "Starting ${ms} moused"
+ /usr/sbin/moused ${myflags} -p ${myport} -t ${mytype} ${pidarg}
+ check_startmsgs && echo '.'
+
+ mousechar_arg=
+ case ${mousechar_start} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ mousechar_arg="-M ${mousechar_start}"
+ ;;
+ esac
+
+ for ttyv in /dev/ttyv* ; do
+ vidcontrol < ${ttyv} ${mousechar_arg} -m on
+ done
+}
+
+run_rc_command $*
OpenPOWER on IntegriCloud