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