1#!/bin/sh
2#
3# $FreeBSD$
4#
5
6# PROVIDE: moused
7# REQUIRE: DAEMON FILESYSTEMS
8# KEYWORD: nojail shutdown
9
10. /etc/rc.subr
11
12name="moused"
13desc="Mouse daemon"
14rcvar="moused_enable"
15command="/usr/sbin/${name}"
16start_cmd="moused_start"
17pidprefix="/var/run/moused"
18pidfile="${pidprefix}.pid"
19pidarg=
20load_rc_config $name
21
22# Set the pid file and variable name. The second argument, if it exists, is
23# expected to be the mouse device.
24#
25if [ -n "$2" ]; then
26	eval moused_$2_enable=\${moused_$2_enable-${moused_nondefault_enable}}
27	rcvar="moused_${2}_enable"
28	pidfile="${pidprefix}.$2.pid"
29	pidarg="-I $pidfile"
30fi
31
32moused_start()
33{
34	local ms myflags myport mytype
35
36	# Set the mouse device and get any related variables. If
37	# a moused device has been specified on the commandline, then
38	# rc.conf(5) variables defined for that device take precedence
39	# over the generic moused_* variables. The only exception is
40	# the moused_port variable, which if not defined sets it to the
41	# passed in device name.
42	#
43	ms=$1
44	if [ -n "$ms" ]; then
45		eval myflags=\${moused_${ms}_flags-$moused_flags}
46		eval myport=\${moused_${ms}_port-/dev/$ms}
47		eval mytype=\${moused_${ms}_type-$moused_type}
48	else
49		ms="default"
50		myflags="$moused_flags"
51		myport="$moused_port"
52		mytype="$moused_type"
53	fi
54
55	check_startmsgs && echo -n "Starting ${ms} moused"
56	/usr/sbin/moused ${myflags} -p ${myport} -t ${mytype} ${pidarg}
57	check_startmsgs && echo '.'
58
59	mousechar_arg=
60	case ${mousechar_start} in
61	[Nn][Oo] | '')
62		;;
63	*)
64		mousechar_arg="-M ${mousechar_start}"
65		;;
66	esac
67
68	for ttyv in /dev/ttyv* ; do
69		vidcontrol < ${ttyv} ${mousechar_arg} -m on
70	done
71}
72
73run_rc_command $*
74