[BACK]Return to wscons CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / etc / rc.d

File: [cvs.NetBSD.org] / src / etc / rc.d / wscons (download)

Revision 1.13, Tue Aug 9 08:08:10 2011 UTC (12 years, 7 months ago) by mbalmer
Branch: MAIN
CVS Tags: yamt-pagecache-tag8, yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, yamt-pagecache, tls-maxphys-base, tls-maxphys, tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, phil-wifi, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, matt-nb8-mediatek-base, matt-nb8-mediatek, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, localcount-20160914, khorben-n900, is-mlppp-base, is-mlppp, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, agc-symver-base, agc-symver, HEAD
Changes since 1.12: +2 -1 lines

Print 'Keyboard encoding -> sg' instead of just 'encoding -> sg' on the
console.

#!/bin/sh
#
# $NetBSD: wscons,v 1.13 2011/08/09 08:08:10 mbalmer Exp $
#

# PROVIDE: wscons
# REQUIRE: mountcritremote
# BEFORE:  LOGIN

$_rc_subr_loaded . /etc/rc.subr

name="wscons"
rcvar=$name
start_cmd="wscons_start"
stop_cmd=":"

wscons_start()
{
	wscfg=/usr/sbin/wsconscfg
	wsfld=/usr/sbin/wsfontload
	wsctl=/sbin/wsconsctl
	config=/etc/wscons.conf
	usage="Usage: wsconfig [-n] [-f configfile] [-font fontpgm] [-screen screenpgm]"
	DOIT=

	while [ $# -gt 0 ]; do
		case $1 in
			-n)
				DOIT=echo
				;;
			-f)
				config=$2
				shift
				;;
			-font)
				wsfld=$2
				shift
				;;
			-screen)
				wscfg=$2
				shift
				;;
			*)
				echo $usage
				exit 1
				;;
		esac
		shift
	done


	# args mean:
	#	screen idx scr emul
	#	font   name width height enc file
	( while read type arg1 arg2 arg3 arg4 arg5; do
		case "$type" in
			\#*|"")
				continue
				;;

			font)
				name=$arg1
				width=$arg2
				height=$arg3
				enc=$arg4
				file=$arg5
				cmd=$wsfld

				case $width in
					-)
						;;
					*)
						cmd="$cmd -w $width"
						;;
				esac
				case $height in
					-)
						;;
					*)
						cmd="$cmd -h $height"
						;;
				esac
				case $enc in
					-)
						;;
					*)
						cmd="$cmd -e $enc"
						;;
				esac
				cmd="$cmd -N $name $file"
				eval $DOIT $cmd
				;;

			screen)
				idx=$arg1
				scr=$arg2
				emul=$arg3
				cmd=$wscfg

				case $scr in
					-)
						;;
					*)
						cmd="$cmd -t $scr"
						;;
				esac
				case $emul in
					-)
						;;
					*)
						cmd="$cmd -e $emul"
						;;
				esac
				cmd="$cmd $idx"
				eval $DOIT $cmd
				;;

			keyboard)
				kbd=$arg1
				cmd=$wscfg
				case $kbd in
					-|auto)
						cmd="$cmd -k"
						;;
					*)
						cmd="$cmd -k $kbd"
						;;
				esac
				eval $DOIT $cmd
				;;

			encoding)
				map=$arg1
				cmd="$wsctl -w \"encoding=$map\""
				echo -n 'Keyboard '
				eval $DOIT $cmd
				;;

			mapfile)
				mapfile=$arg1
				( while read entry; do
				    case "$entry" in
					\#*|"")
					    continue
					    ;;
					*)
					    cmd="$wsctl -w \"map+=$entry\""
					    cmd="$cmd >/dev/null"
					    eval $DOIT $cmd
					    ;;
				    esac
				done ) < $mapfile
				;;

			mux)
				cmd="$wscfg -m $arg1"
				eval $DOIT $cmd
				;;

			setvar)
				dev=$arg1
				var=$arg2
				val=$arg3

				case $dev in
				    ttyE*)
					cmdmod="-d"
					;;
				    wskbd*)
					cmdmod="-k"
					;;
				    wsmouse*)
					cmdmod="-m"
					;;
				esac
				echo -n "$dev: "
				cmd="$wsctl -f /dev/$dev $cmdmod -w $var=$val"
				eval $DOIT $cmd
				;;

		esac
	done ) < $config
}

load_rc_config $name
run_rc_command "$1"