wscons revision 1.7
11.1Slukem#!/bin/sh
21.1Slukem#
31.7Sdrochner# $NetBSD: wscons,v 1.7 2001/05/02 15:14:03 drochner Exp $
41.1Slukem#
51.1Slukem
61.1Slukem# PROVIDE: wscons
71.4Slukem# REQUIRE: mountcritremote
81.1Slukem
91.1Slukem. /etc/rc.subr
101.1Slukem
111.1Slukemname="wscons"
121.6Slukemrcvar=$name
131.5Slukemstart_cmd="wscons_start"
141.2Sveegostop_cmd=":"
151.1Slukem
161.5Slukemwscons_start()
171.1Slukem{
181.5Slukem	wscfg=/usr/sbin/wsconscfg
191.5Slukem	wsfld=/usr/sbin/wsfontload
201.7Sdrochner	wsctl=/sbin/wsconsctl
211.5Slukem	config=/etc/wscons.conf
221.5Slukem	usage="Usage: wsconfig [-n] [-f configfile] [-font fontpgm] [-screen screenpgm]"
231.5Slukem	DOIT=
241.5Slukem
251.5Slukem	while [ $# -gt 0 ]; do
261.5Slukem		case $1 in
271.5Slukem			-n)
281.5Slukem				DOIT=echo
291.5Slukem				;;
301.5Slukem			-f)
311.5Slukem				config=$2
321.5Slukem				shift
331.5Slukem				;;
341.5Slukem			-font)
351.5Slukem				wsfld=$2
361.5Slukem				shift
371.5Slukem				;;
381.5Slukem			-screen)
391.5Slukem				wscfg=$2
401.5Slukem				shift
411.5Slukem				;;
421.5Slukem			*)
431.5Slukem				echo $usage
441.5Slukem				exit 1
451.5Slukem				;;
461.5Slukem		esac
471.5Slukem		shift
481.5Slukem	done
491.5Slukem
501.5Slukem
511.5Slukem	# args mean:
521.5Slukem	#	screen idx scr emul
531.5Slukem	#	font   name width height enc file
541.5Slukem	( while read type arg1 arg2 arg3 arg4 arg5; do
551.5Slukem		case "$type" in
561.5Slukem			\#*|"")
571.5Slukem				continue
581.5Slukem				;;
591.5Slukem			font)
601.5Slukem				name=$arg1
611.5Slukem				width=$arg2
621.5Slukem				height=$arg3
631.5Slukem				enc=$arg4
641.5Slukem				file=$arg5
651.5Slukem				cmd=$wsfld
661.5Slukem
671.5Slukem				case $width in
681.5Slukem					-)
691.5Slukem						;;
701.5Slukem					*)
711.5Slukem						cmd="$cmd -w $width"
721.5Slukem						;;
731.5Slukem				esac
741.5Slukem				case $height in
751.5Slukem					-)
761.5Slukem						;;
771.5Slukem					*)
781.5Slukem						cmd="$cmd -h $height"
791.5Slukem						;;
801.5Slukem				esac
811.5Slukem				case $enc in
821.5Slukem					-)
831.5Slukem						;;
841.5Slukem					*)
851.5Slukem						cmd="$cmd -e $enc"
861.5Slukem						;;
871.5Slukem				esac
881.5Slukem				cmd="$cmd -N $name $file"
891.5Slukem				eval $DOIT $cmd
901.5Slukem				;;
911.5Slukem			screen)
921.5Slukem				idx=$arg1
931.5Slukem				scr=$arg2
941.5Slukem				emul=$arg3
951.5Slukem				cmd=$wscfg
961.5Slukem
971.5Slukem				case $scr in
981.5Slukem					-)
991.5Slukem						;;
1001.5Slukem					*)
1011.5Slukem						cmd="$cmd -t $scr"
1021.5Slukem						;;
1031.5Slukem				esac
1041.5Slukem				case $emul in
1051.5Slukem					-)
1061.5Slukem						;;
1071.5Slukem					*)
1081.5Slukem						cmd="$cmd -e $emul"
1091.5Slukem						;;
1101.5Slukem				esac
1111.5Slukem				cmd="$cmd $idx"
1121.5Slukem				eval $DOIT $cmd
1131.5Slukem				;;
1141.5Slukem			keyboard)
1151.5Slukem				kbd=$arg1
1161.5Slukem				cmd=$wscfg
1171.5Slukem				case $kbd in
1181.5Slukem					-|auto)
1191.5Slukem						cmd="$cmd -k"
1201.5Slukem						;;
1211.5Slukem					*)
1221.5Slukem						cmd="$cmd -k $kbd"
1231.5Slukem						;;
1241.5Slukem				esac
1251.5Slukem				eval $DOIT $cmd
1261.7Sdrochner				;;
1271.7Sdrochner			encoding)
1281.7Sdrochner				map=$arg1
1291.7Sdrochner				cmd=$wsctl
1301.7Sdrochner				cmd="$cmd -w \"encoding=$map\""
1311.7Sdrochner				eval $DOIT $cmd
1321.7Sdrochner				;;
1331.7Sdrochner			mapfile)
1341.7Sdrochner				mapfile=$arg1
1351.7Sdrochner				( while read entry; do
1361.7Sdrochner				    case "$entry" in
1371.7Sdrochner					\#*|"")
1381.7Sdrochner					    continue
1391.7Sdrochner					    ;;
1401.7Sdrochner					*)
1411.7Sdrochner					    cmd=$wsctl
1421.7Sdrochner					    cmd="$cmd -w \"map+=$entry\""
1431.7Sdrochner					    cmd="$cmd >/dev/null"
1441.7Sdrochner					    eval $DOIT $cmd
1451.7Sdrochner					    ;;
1461.7Sdrochner				    esac
1471.7Sdrochner				done ) < $mapfile
1481.5Slukem				;;
1491.5Slukem			mux)
1501.5Slukem				cmd="$wscfg -m $arg1"
1511.5Slukem				eval $DOIT $cmd
1521.5Slukem				;;
1531.5Slukem		esac
1541.5Slukem	done ) < $config
1551.1Slukem}
1561.1Slukem
1571.3Slukemload_rc_config $name
1581.1Slukemrun_rc_command "$1"
159