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