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