]> git.lizzy.rs Git - plan9front.git/blob - rc/bin/9fs
tcp17019: make service proto and netdir arguments optional (for aux/listen1)
[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 esp pidos dos
10         if(~ $#2 1)
11                 part=`{ls $2 >[2]/dev/null}
12         if not if(~ $1 pidos)
13                 part=`{ls /dev/sdM*/dos >[2]/dev/null}
14         if not
15                 part=`{ls /dev/fs/$1 /dev/sd*/$1 >[2]/dev/null}
16         if(~ $#part 0) {
17                 echo 'no '$1' partition found' >[1=2]
18                 exit no.$1
19         }
20         part=$part(1)
21         
22         if(! test -f /srv/dos)
23                 dossrv >/dev/null </dev/null >[2]/dev/null
24         
25         unmount /n/$1 >/dev/null >[2]/dev/null
26         mount -c /srv/dos /n/$1 $part
27         if(~ $1 9fat){
28                 unmount /n/9 >/dev/null >[2]/dev/null
29                 mount -c /srv/dos /n/9 $part
30         }
31 case dump other
32         mount -C /srv/boot /n/$1 $1
33 case sources
34         srv -nqC tcp!sources.cs.bell-labs.com sources /n/sources
35 case sourcesdump
36         9fs sources
37         mount -nC /srv/sources /n/sourcesdump main/archive
38 case sourcessnap
39         9fs sources
40         mount -nC /srv/sources /n/sourcessnap main/snapshot
41 case atom
42         srv -nq tcp!atom.9atom.org atom && mount -nC /srv/atom /n/atom atom
43 case atomdump
44         9fs atom && mount -nC /srv/atom /n/atomdump atomdump
45 case 9pio
46         srv -nq tcp!9p.io 9pio && mount -nC /srv/9pio /n/9pio
47 case 9front
48         9fs 9front.org
49         for(i in 9front extra fqa hardware iso lists pkg sites)
50                 bind /n/9front.org/$i /n/$i
51         9fs tcp!9front.org!7734
52         bind -b /n/9front.org!7734 /n/lists
53         9fs contrib.9front.org
54         for(i in bugs contrib sources)
55                 bind /n/contrib.9front.org/$i /n/$i
56 # arbitrary venti archives
57 case vac:*
58         vacfs <{echo $1}
59 case *.vac
60         if (test -e $1)
61                 score=$1
62         if not if (! ~ $1 /* && test -e $home/lib/vac/$1)
63                 score=$home/lib/vac/$1
64         if not if (! ~ $1 /* && test -e /lib/vac/$1)
65                 score=/lib/vac/$1
66         if not {
67                 echo $0: $1: no such score file >[1=2]
68                 exit 'no score file'
69         }
70         vacfs -m /n/`{basename $1 .vac} `{cat $score}
71 case wiki
72         srv -m 'net!plan9.bell-labs.com!wiki' wiki /mnt/wiki
73 case *
74         switch($#*){
75         case 1
76                 srv -m $1
77         case *
78                 srv -m $1 $1 $2
79         }
80 }