]> git.lizzy.rs Git - plan9front.git/blob - rc/bin/9fs
ircrc: various improvements (thanks again pap!)
[plan9front.git] / rc / bin / 9fs
1 #!/bin/rc
2 # 9fs filesystem [mountpoint] - srv & mount filesystem, usually from plan 9
3
4 rfork e
5 switch($1){
6 case ''
7         echo usage: 9fs service '[mountpoint]' >[1=2]
8         exit usage
9 case 9fat
10         if(~ $#2 1)
11                 part=`{ls $2 >[2]/dev/null}
12         if not
13                 part=`{ls /dev/fs/9fat /dev/sd*/9fat >[2]/dev/null}
14         if(~ $#part 0) {
15                 echo 'no 9fat partition found' >[1=2]
16                 exit no.9fat
17         }
18         
19         part=$part(1)
20         
21         if(! test -f /srv/dos)
22                 dossrv >/dev/null </dev/null >[2]/dev/null
23         
24         unmount /n/9fat >/dev/null >[2]/dev/null
25         mount -c /srv/dos /n/9fat $part
26         unmount /n/9 >/dev/null >[2]/dev/null
27         mount -c /srv/dos /n/9 $part
28 case kfs
29         if(! test -f /srv/kfs)
30                 disk/kfs
31         mount -c /srv/kfs /n/kfs
32 case dump
33         mount /srv/boot /n/dump dump >[2]/dev/null ||
34                 mount /srv/boot /n/dump main/archive ||
35                 mount /srv/boot /n/dump dump    # again to print error
36 case snap
37         mount /srv/boot /n/snap main/snapshot
38 case other
39         mount -C /srv/boot /n/other other
40 case juke                                       # ye olde file server
41         srv -q il!jukefs && mount /srv/il!jukefs /n/juke
42 case sources
43         srv -nqC tcp!sources.cs.bell-labs.com sources /n/sources
44 case sourcesdump
45         9fs sources
46         mount -nC /srv/sources /n/sourcesdump main/archive
47 case sourcessnap
48         9fs sources
49         mount -nC /srv/sources /n/sourcessnap main/snapshot
50 # arbitrary venti archives
51 case vac:*
52         vacfs <{echo $1}
53 case *.vac
54         if (test -e $1)
55                 score=$1
56         if not if (! ~ $1 /* && test -e $home/lib/vac/$1)
57                 score=$home/lib/vac/$1
58         if not if (! ~ $1 /* && test -e /lib/vac/$1)
59                 score=/lib/vac/$1
60         if not {
61                 echo $0: $1: no such score file >[1=2]
62                 exit 'no score file'
63         }
64         vacfs -m /n/`{basename $1 .vac} `{cat $score}
65 case wiki
66         srv -m 'net!plan9.bell-labs.com!wiki' wiki /mnt/wiki
67 case *
68         switch($#*){
69         case 1
70                 srv -m $1
71         case *
72                 srv -m $1 $1 $2
73         }
74 }