87 lines
2 KiB
Bash
Executable file
87 lines
2 KiB
Bash
Executable file
#!/bin/rc
|
|
# 9fs filesystem [mountpoint] - srv & mount filesystem, usually from plan 9
|
|
|
|
rfork e
|
|
switch($1){
|
|
case ''
|
|
echo usage: 9fs service '[mountpoint]' >[1=2]
|
|
exit usage
|
|
case 9fat
|
|
if(~ $#2 1)
|
|
part=`{ls $2 >[2]/dev/null}
|
|
if not
|
|
part=`{ls /dev/fs/9fat /dev/sd*/9fat >[2]/dev/null}
|
|
if(~ $#part 0) {
|
|
echo 'no 9fat partition found' >[1=2]
|
|
exit no.9fat
|
|
}
|
|
|
|
part=$part(1)
|
|
|
|
if(! test -f /srv/dos)
|
|
dossrv >/dev/null </dev/null >[2]/dev/null
|
|
|
|
unmount /n/9fat >/dev/null >[2]/dev/null
|
|
mount -c /srv/dos /n/9fat $part
|
|
unmount /n/9 >/dev/null >[2]/dev/null
|
|
mount -c /srv/dos /n/9 $part
|
|
case kfs
|
|
if(! test -f /srv/kfs)
|
|
disk/kfs
|
|
mount -c /srv/kfs /n/kfs
|
|
case dump
|
|
mount /srv/boot /n/dump dump >[2]/dev/null ||
|
|
mount /srv/boot /n/dump main/archive ||
|
|
mount /srv/boot /n/dump dump # again to print error
|
|
case snap
|
|
mount /srv/boot /n/snap main/snapshot
|
|
case other
|
|
mount -C /srv/boot /n/other other
|
|
case juke # ye olde file server
|
|
srv -q il!jukefs && mount /srv/il!jukefs /n/juke
|
|
case sources
|
|
srv -nqC tcp!sources.cs.bell-labs.com sources /n/sources
|
|
case sourcesdump
|
|
9fs sources
|
|
mount -nC /srv/sources /n/sourcesdump main/archive
|
|
case sourcessnap
|
|
9fs sources
|
|
mount -nC /srv/sources /n/sourcessnap main/snapshot
|
|
case atom
|
|
srv -nq tcp!atom.9atom.org atom && mount -nC /srv/atom /n/atom atom
|
|
case atomdump
|
|
9fs atom && mount -nC /srv/atom /n/atomdump atomdump
|
|
case pidos
|
|
dossrv >/dev/null >[2]/dev/null
|
|
part=`{ls /dev/sdM*/dos >[2]/dev/null}
|
|
if(~ $#part 0) {
|
|
echo 'no dos partition found' >[1=2]
|
|
exit no.pidos
|
|
}
|
|
mount -c '#s/dos' /n/pidos $part
|
|
# arbitrary venti archives
|
|
case vac:*
|
|
vacfs <{echo $1}
|
|
case *.vac
|
|
if (test -e $1)
|
|
score=$1
|
|
if not if (! ~ $1 /* && test -e $home/lib/vac/$1)
|
|
score=$home/lib/vac/$1
|
|
if not if (! ~ $1 /* && test -e /lib/vac/$1)
|
|
score=/lib/vac/$1
|
|
if not {
|
|
echo $0: $1: no such score file >[1=2]
|
|
exit 'no score file'
|
|
}
|
|
vacfs -m /n/`{basename $1 .vac} `{cat $score}
|
|
case wiki
|
|
srv -m 'net!plan9.bell-labs.com!wiki' wiki /mnt/wiki
|
|
case *
|
|
switch($#*){
|
|
case 1
|
|
srv -m $1
|
|
case *
|
|
srv -m $1 $1 $2
|
|
}
|
|
}
|