Home | History | Annotate | Line # | Download | only in rc.d
wscons revision 1.6
      1 #!/bin/sh
      2 #
      3 # $NetBSD: wscons,v 1.6 2000/09/19 13:04:39 lukem Exp $
      4 #
      5 
      6 # PROVIDE: wscons
      7 # REQUIRE: mountcritremote
      8 
      9 . /etc/rc.subr
     10 
     11 name="wscons"
     12 rcvar=$name
     13 start_cmd="wscons_start"
     14 stop_cmd=":"
     15 
     16 wscons_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 
    134 load_rc_config $name
    135 run_rc_command "$1"
    136