#!/bin/rc
# wrapper script for hubfs and hubshell - starts both servers and clients
# hub [srvname] [shellname]
rfork enf
while (~ $1 -*){
switch($1){
case -b
background = yes
shift
case -t
trunc = yes
shift
case *
echo bad flag $1
shift
}
}
srvname = $1
attach = $2
if(~ $srvname ''){
srvname = hubfs
}
if(~ $attach ''){
attach = io
}
fn starthubfs {
echo creating hubfs /srv/$srvname
if (! ~ $trunc yes)
hubfs -s $srvname
if (~ $trunc yes)
hubfs -t -s $srvname
}
fn makehubs {
if(! test -e /n/$srvname/ctl)
touch /n/$srvname/ctl
touch /n/$srvname/$attach'0'
touch /n/$srvname/$attach'1'
touch /n/$srvname/$attach'2'
touch /n/$srvname/$attach^0.note
oldprompt = $prompt
prompt =($attach'% ')
rc -i </n/$srvname/$attach'0' >/n/$srvname/$attach'1' >[2]/n/$srvname/$attach'2' &
cat /n/$srvname/$attach^0.note >/proc/$apid/notepg &
sleep 1
}
if (! test -e /n/$srvname/$attach'0'){
if (! test -e /n/$srvname/io0){
if (! test -e /srv/$srvname)
starthubfs
mount -c /srv/$srvname /n/$srvname
}
if (! test -e /n/$srvname/$attach'0')
makehubs
}
if(! ~ $background yes){
hubshell /n/$srvname/$attach
echo hubshell ended
}
rfork e
prompt = $oldprompt
exit ''
|