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