openrc/init.d/wscons.in
Andrew Gregory 8a44067838 Fix shebangs in services to point to the correct location of runscript
SBINDIR and BINDIR can be set independently of PREFIX.  This fixes
broken shebangs in service files when SBINDIR is set to something other
than PREFIX/sbin

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-23 20:30:39 -06:00

101 lines
1.6 KiB
Plaintext

#!@SBINDIR@/runscript
# Copyright (c) 2008-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
depend()
{
need localmount
keyword -prefix
}
start()
{
wscfg=/usr/sbin/wsconscfg
wsfld=/usr/sbin/wsfontload
wsctl=/sbin/wsconsctl
config=/etc/wscons.conf
# 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)
cmd=$wsfld
[ "$arg2" != "-" ] && cmd="$cmd -w $arg2"
[ "$arg3" != "-" ] && cmd="$cmd -h $arg3"
[ "$arg4" != "-" ] && cmd="$cmd -e $arg4"
cmd="$cmd -N $arg1 $arg5"
eval "$cmd"
;;
screen)
cmd=$wscfg
[ "$arg2" != "-" ] && cmd="$cmd -t $arg2"
[ "$arg3" != "-" ] && cmd="$cmd -e $arg3"
cmd="$cmd $arg1"
eval "$cmd"
;;
keyboard)
cmd=$wscfg
case "$arg1" in
-|auto)
cmd="$cmd -k"
;;
*)
cmd="$cmd -k $arg1"
;;
esac
$cmd
;;
encoding)
eval $wsctl -w "\"encoding=$arg1\""
;;
mapfile)
local entry=
while read entry; do
case "$entry" in
\#*|"")
continue
;;
*)
cmd="$wsctl -w \"map+=$entry\""
eval "$cmd >/dev/null"
;;
esac
done < "$arg1"
;;
mux)
eval "$wscfg -m $arg1"
;;
setvar)
case "$arg1" in
keyboard)
cmd="$wsctl -kw $arg2"
;;
display)
cmd="$wsctl -dw $arg2"
;;
mouse)
cmd="$wsctl -mw $arg2"
;;
*)
cmd="$wsctl -w $arg1"
;;
esac
eval "$cmd"
;;
esac
done < "$config"
}