#!/bin/rc rfork e fn usage { >[2=1] echo 'usage:' $0 '[-mst]' exit usage } fn quiet { if(~ $quiet 'no') >[2=1] echo $* } fn fail { quiet fail: $* exit 'fail: '$* } registry='tcp!registry.9gridchan.org!6675' reconnect='no' mountonly='no' scriptonly='no' tls='no' quiet='no' while(~ $1 -* && ! ~ $1 --){ switch($1){ case -m mountonly='yes' case -s scriptonly='yes' case -t tls='yes' registry='tcp!registry.9gridchan.org!6675' case -q quiet='yes' reconnect='yes' case * usage } shift } if(! ~ $#* 0) usage services=( \ gridregistry pubregistry \ gridchat gridplumber \ gridram griddisk \ gridroot gridwiki) for(s in $services) if(test -w /srv/$s) reconnect='yes' if(~ $reconnect 'yes'){ if(~ $quiet 'no'){ echo -n 'old grid connections found in /srv, remove? [y/n]: ' reconnect=`{read} } if(~ $reconnect y*) rm -f /srv/^$services } if(~ $mountonly 'no') rfork n if(~ $tls 'no') srv $registry gridregistry /mnt/registry || fail registry if not{ if(! test -w /mnt/factotum/ctl) auth/factotum >/mnt/factotum/ctl echo 'key proto=dp9ik user=glenda dom=grid !password=9gridchan' || fail factotum srvtls $registry gridregistry /mnt/registry || fail registry } >/tmp/gridmount echo '#!/bin/rc' >>/tmp/gridmount /tmp/chatcat cat <<'...' #!/bin/rc label chat echo 'README:' echo ' This is chatcat(1).' echo ' Type a (multi-line) message ending with a newline' echo ' and press control-d (EOT) to send.' echo echo -n 'nick? ' nick=`{read} if(~ $#nick 0) nick='unknown gridster' echo JOIN $nick to chat >>/n/chat/chat cat /n/chat/chat & while() cat | sed '1s/^/'$nick' → /' >>/n/chat/chat ... chmod +x /tmp/chatcat >/tmp/gridrio cat <<'...' #!/bin/rc if(test -x /bin/chat) window -r 0 0 700 400 -scroll chat if not window -r 0 0 700 400 -scroll /tmp/chatcat window -r 700 0 1300 400 acme -c1 /n/griddisk /n/griddisk/gridmsg window -r 0 400 700 750 mothra -a http://wiki.9gridchan.org/message_board window -r 700 400 1300 750 page /n/gridroot/lib/musicant.png ... chmod +x /tmp/gridrio >/tmp/gridscript cat <<'...' #!/bin/rc /tmp/gridmount fn cpl { cp $1 /n/griddisk/cpl ptarg=`{basename $1} plumb http://wiki.9gridchan.org/incoming/cpl/$ptarg } if(! test -e /mnt/web/ctl) webfs rio=(rio) if(test -x /bin/grio) rio=(grio -c 0x99009900) exec $rio -i /tmp/gridrio ... chmod +x /tmp/gridscript window -r 0 0 1350 750 /tmp/gridscript