wscons revision 1.10
11.1Slukem#!/bin/sh 21.1Slukem# 31.10Smycroft# $NetBSD: wscons,v 1.10 2004/08/13 18:08:03 mycroft Exp $ 41.1Slukem# 51.1Slukem 61.1Slukem# PROVIDE: wscons 71.4Slukem# REQUIRE: mountcritremote 81.8Sthorpej# BEFORE: LOGIN 91.1Slukem 101.10Smycroft$_rc_subr_loaded . /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.9Slukem 611.5Slukem font) 621.5Slukem name=$arg1 631.5Slukem width=$arg2 641.5Slukem height=$arg3 651.5Slukem enc=$arg4 661.5Slukem file=$arg5 671.5Slukem cmd=$wsfld 681.5Slukem 691.5Slukem case $width in 701.5Slukem -) 711.5Slukem ;; 721.5Slukem *) 731.5Slukem cmd="$cmd -w $width" 741.5Slukem ;; 751.5Slukem esac 761.5Slukem case $height in 771.5Slukem -) 781.5Slukem ;; 791.5Slukem *) 801.5Slukem cmd="$cmd -h $height" 811.5Slukem ;; 821.5Slukem esac 831.5Slukem case $enc in 841.5Slukem -) 851.5Slukem ;; 861.5Slukem *) 871.5Slukem cmd="$cmd -e $enc" 881.5Slukem ;; 891.5Slukem esac 901.5Slukem cmd="$cmd -N $name $file" 911.5Slukem eval $DOIT $cmd 921.5Slukem ;; 931.9Slukem 941.5Slukem screen) 951.5Slukem idx=$arg1 961.5Slukem scr=$arg2 971.5Slukem emul=$arg3 981.5Slukem cmd=$wscfg 991.5Slukem 1001.5Slukem case $scr in 1011.5Slukem -) 1021.5Slukem ;; 1031.5Slukem *) 1041.5Slukem cmd="$cmd -t $scr" 1051.5Slukem ;; 1061.5Slukem esac 1071.5Slukem case $emul in 1081.5Slukem -) 1091.5Slukem ;; 1101.5Slukem *) 1111.5Slukem cmd="$cmd -e $emul" 1121.5Slukem ;; 1131.5Slukem esac 1141.5Slukem cmd="$cmd $idx" 1151.5Slukem eval $DOIT $cmd 1161.5Slukem ;; 1171.9Slukem 1181.5Slukem keyboard) 1191.5Slukem kbd=$arg1 1201.5Slukem cmd=$wscfg 1211.5Slukem case $kbd in 1221.5Slukem -|auto) 1231.5Slukem cmd="$cmd -k" 1241.5Slukem ;; 1251.5Slukem *) 1261.5Slukem cmd="$cmd -k $kbd" 1271.5Slukem ;; 1281.5Slukem esac 1291.5Slukem eval $DOIT $cmd 1301.7Sdrochner ;; 1311.9Slukem 1321.7Sdrochner encoding) 1331.7Sdrochner map=$arg1 1341.9Slukem cmd="$wsctl -w \"encoding=$map\"" 1351.7Sdrochner eval $DOIT $cmd 1361.7Sdrochner ;; 1371.9Slukem 1381.7Sdrochner mapfile) 1391.7Sdrochner mapfile=$arg1 1401.7Sdrochner ( while read entry; do 1411.7Sdrochner case "$entry" in 1421.7Sdrochner \#*|"") 1431.7Sdrochner continue 1441.7Sdrochner ;; 1451.7Sdrochner *) 1461.9Slukem cmd="$wsctl -w \"map+=$entry\"" 1471.7Sdrochner cmd="$cmd >/dev/null" 1481.7Sdrochner eval $DOIT $cmd 1491.7Sdrochner ;; 1501.7Sdrochner esac 1511.7Sdrochner done ) < $mapfile 1521.5Slukem ;; 1531.9Slukem 1541.5Slukem mux) 1551.5Slukem cmd="$wscfg -m $arg1" 1561.5Slukem eval $DOIT $cmd 1571.5Slukem ;; 1581.9Slukem 1591.9Slukem setvar) 1601.9Slukem cmd="$wsctl -w $arg1" 1611.9Slukem eval $DOIT $cmd 1621.9Slukem ;; 1631.9Slukem 1641.5Slukem esac 1651.5Slukem done ) < $config 1661.1Slukem} 1671.1Slukem 1681.3Slukemload_rc_config $name 1691.1Slukemrun_rc_command "$1" 170