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