ref: 5a13bf8802eea9663d555a24c90dc0e8c346d97d
dir: /lpa/
#!/bin/rc
rfork ens
id=0
readonly=0
printlist=0
fn usage{
echo 'usage: lpa [-n session | -r session | -l]'
exit 'usage'
}
fn nosession{
echo 'session '^$id^' does not exist'
exit 'no such session'
}
while(~ $1 -*){
switch($1){
case -n
if(! ~ $id 0)
usage
id=$2
shift
case -r
if(! ~ $id 0)
usage
readonly=1
id=$2
shift
case -l
if(! ~ $id 0)
usage
printlist=1
case -*
usage
}
shift
}
if(! ~ $#* 0)
usage
# Start LPA if it isn't already running
lpafs
# Make /mnt/lpa available to sam and rio..
plumb 'Local lpafs'
if(~ $printlist 1){
echo `{cd /mnt/lpa; ls | grep -v '^new$'}
exit
}
if(~ $id 0)
id=`{cat /mnt/lpa/new}
if not{
if(! test -d /mnt/lpa/$id/)
nosession
}
cd /mnt/lpa/$id
label LPA session $id
if(~ $readonly 1)
cat cons
if not{
cat cons &
while(line=`''{read}){
n=`{tail -1l /dev/text | sed 's/^[ ]*//' | wc -r} # number of runes to delete
awk 'END {
for(i = 0; i < '^$n^'; i++)
printf("\b");
}' /dev/text
echo -n $line > cons
}
}