Switch to OpenNTPD by default. For the moment, the documentation is
[dragonfly.git] / etc / rc.d / wscons
1 #!/bin/sh
2 #
3 # $NetBSD: wscons,v 1.9 2002/04/26 00:06:54 lukem Exp $
4 # $FreeBSD: src/etc/rc.d/wscons,v 1.4 2002/10/12 10:31:31 schweikh Exp $
5 # $DragonFly: src/etc/rc.d/Attic/wscons,v 1.1 2003/07/24 06:35:37 dillon Exp $
6 #
7
8 # PROVIDE: wscons
9 # REQUIRE: mountcritremote
10 # BEFORE:  LOGIN
11
12 . /etc/rc.subr
13
14 name="wscons"
15 rcvar=$name
16 start_cmd="wscons_start"
17 stop_cmd=":"
18
19 wscons_start()
20 {
21         wscfg=/usr/sbin/wsconscfg
22         wsfld=/usr/sbin/wsfontload
23         wsctl=/sbin/wsconsctl
24         config=/etc/wscons.conf
25         usage="Usage: wsconfig [-n] [-f configfile] [-font fontpgm] [-screen screenpgm]"
26         DOIT=
27
28         while [ $# -gt 0 ]; do
29                 case $1 in
30                         -n)
31                                 DOIT=echo
32                                 ;;
33                         -f)
34                                 config=$2
35                                 shift
36                                 ;;
37                         -font)
38                                 wsfld=$2
39                                 shift
40                                 ;;
41                         -screen)
42                                 wscfg=$2
43                                 shift
44                                 ;;
45                         *)
46                                 echo $usage
47                                 exit 1
48                                 ;;
49                 esac
50                 shift
51         done
52
53
54         # args mean:
55         #       screen idx scr emul
56         #       font   name width height enc file
57         ( while read type arg1 arg2 arg3 arg4 arg5; do
58                 case "$type" in
59                         \#*|"")
60                                 continue
61                                 ;;
62
63                         font)
64                                 name=$arg1
65                                 width=$arg2
66                                 height=$arg3
67                                 enc=$arg4
68                                 file=$arg5
69                                 cmd=$wsfld
70
71                                 case $width in
72                                         -)
73                                                 ;;
74                                         *)
75                                                 cmd="$cmd -w $width"
76                                                 ;;
77                                 esac
78                                 case $height in
79                                         -)
80                                                 ;;
81                                         *)
82                                                 cmd="$cmd -h $height"
83                                                 ;;
84                                 esac
85                                 case $enc in
86                                         -)
87                                                 ;;
88                                         *)
89                                                 cmd="$cmd -e $enc"
90                                                 ;;
91                                 esac
92                                 cmd="$cmd -N $name $file"
93                                 eval $DOIT $cmd
94                                 ;;
95
96                         screen)
97                                 idx=$arg1
98                                 scr=$arg2
99                                 emul=$arg3
100                                 cmd=$wscfg
101
102                                 case $scr in
103                                         -)
104                                                 ;;
105                                         *)
106                                                 cmd="$cmd -t $scr"
107                                                 ;;
108                                 esac
109                                 case $emul in
110                                         -)
111                                                 ;;
112                                         *)
113                                                 cmd="$cmd -e $emul"
114                                                 ;;
115                                 esac
116                                 cmd="$cmd $idx"
117                                 eval $DOIT $cmd
118                                 ;;
119
120                         keyboard)
121                                 kbd=$arg1
122                                 cmd=$wscfg
123                                 case $kbd in
124                                         -|auto)
125                                                 cmd="$cmd -k"
126                                                 ;;
127                                         *)
128                                                 cmd="$cmd -k $kbd"
129                                                 ;;
130                                 esac
131                                 eval $DOIT $cmd
132                                 ;;
133
134                         encoding)
135                                 map=$arg1
136                                 cmd="$wsctl -w \"encoding=$map\""
137                                 eval $DOIT $cmd
138                                 ;;
139
140                         mapfile)
141                                 mapfile=$arg1
142                                 ( while read entry; do
143                                         case "$entry" in
144                                                 \#*|"")
145                                                 continue
146                                                 ;;
147                                         *)
148                                                 cmd="$wsctl -w \"map+=$entry\""
149                                                 cmd="$cmd >/dev/null"
150                                                 eval $DOIT $cmd
151                                                 ;;
152                                         esac
153                                 done ) < $mapfile
154                                 ;;
155
156                         mux)
157                                 cmd="$wscfg -m $arg1"
158                                 eval $DOIT $cmd
159                                 ;;
160
161                         setvar)
162                                 cmd="$wsctl -w $arg1"
163                                 eval $DOIT $cmd
164                                 ;;
165
166                 esac
167         done ) < $config
168 }
169
170 load_rc_config $name
171 run_rc_command "$1"