ref: d40306334969a1b745b9c3ae273be0d66fe5deae
dir: /altid/
#!/bin/rc rfork ne svc=() fn usage { echo Usage: $0 [-a host] svc >[1=2] exit usage } fn sighub { unmount /n/$svc exit 'hang up' } fn sigint sigterm { unmount /n/$svc exit sig } fn work { while (cmd=`{read}){ s=$status if(~ $s *eof){ exit } switch($cmd(1)) { case /tabs cat /n/$svc/tabs case /quit echo quit >/n/$svc/ctrl unmount /n/$svc exit case /buffer* msg = `{echo $cmd | sed 's|/buffer||'} echo buffer $msg >/n/$svc/ctrl sleep 1 cat /n/$svc/feed & case /join* msg = `{echo $cmd | sed 's|/join ||' } echo open $msg >/n/$svc/ctrl echo buffer $msg >/n/$svc/ctrl sleep 1 cat /n/$svc/feed & case * echo $cmd >/n/$svc/input } } } host=() while(~ $1 -*){ switch($1){ case -a host=$2 shift } shift } if(~ $#* 0) usage label $1 svc=$1 if(~ $#host 1){ rm /srv/$svc srv tcp!$host $svc } mount /srv/$svc /n/$svc # Initial feed cat /n/$svc/feed & work