wscons revision 1.5
1#!/bin/sh
2#
3# $NetBSD: wscons,v 1.5 2000/08/21 23:02:25 lukem Exp $
4#
5
6# PROVIDE: wscons
7# REQUIRE: mountcritremote
8
9. /etc/rc.subr
10
11name="wscons"
12start_precmd="checkyesno wscons"
13start_cmd="wscons_start"
14stop_cmd=":"
15
16wscons_start()
17{
18	wscfg=/usr/sbin/wsconscfg
19	wsfld=/usr/sbin/wsfontload
20	config=/etc/wscons.conf
21	usage="Usage: wsconfig [-n] [-f configfile] [-font fontpgm] [-screen screenpgm]"
22	DOIT=
23
24	while [ $# -gt 0 ]; do
25		case $1 in
26			-n)
27				DOIT=echo
28				;;
29			-f)
30				config=$2
31				shift
32				;;
33			-font)
34				wsfld=$2
35				shift
36				;;
37			-screen)
38				wscfg=$2
39				shift
40				;;
41			*)
42				echo $usage
43				exit 1
44				;;
45		esac
46		shift
47	done
48
49
50	# args mean:
51	#	screen idx scr emul
52	#	font   name width height enc file
53	( while read type arg1 arg2 arg3 arg4 arg5; do
54		case "$type" in
55			\#*|"")
56				continue
57				;;
58			font)
59				name=$arg1
60				width=$arg2
61				height=$arg3
62				enc=$arg4
63				file=$arg5
64				cmd=$wsfld
65
66				case $width in
67					-)
68						;;
69					*)
70						cmd="$cmd -w $width"
71						;;
72				esac
73				case $height in
74					-)
75						;;
76					*)
77						cmd="$cmd -h $height"
78						;;
79				esac
80				case $enc in
81					-)
82						;;
83					*)
84						cmd="$cmd -e $enc"
85						;;
86				esac
87				cmd="$cmd -N $name $file"
88				eval $DOIT $cmd
89				;;
90			screen)
91				idx=$arg1
92				scr=$arg2
93				emul=$arg3
94				cmd=$wscfg
95
96				case $scr in
97					-)
98						;;
99					*)
100						cmd="$cmd -t $scr"
101						;;
102				esac
103				case $emul in
104					-)
105						;;
106					*)
107						cmd="$cmd -e $emul"
108						;;
109				esac
110				cmd="$cmd $idx"
111				eval $DOIT $cmd
112				;;
113			keyboard)
114				kbd=$arg1
115				cmd=$wscfg
116				case $kbd in
117					-|auto)
118						cmd="$cmd -k"
119						;;
120					*)
121						cmd="$cmd -k $kbd"
122						;;
123				esac
124				eval $DOIT $cmd
125				;;
126			mux)
127				cmd="$wscfg -m $arg1"
128				eval $DOIT $cmd
129				;;
130		esac
131	done ) < $config
132}
133
134load_rc_config $name
135run_rc_command "$1"
136