]> git.lizzy.rs Git - plan9front.git/blob - rc/bin/9fs
crop /lib/face/48x48x8/n/nixie.1 to the right size (was 512x512)
[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 case pidos
51         dossrv >/dev/null >[2]/dev/null
52         part=`{ls /dev/sdM*/dos >[2]/dev/null}
53         if(~ $#part 0) {
54                 echo 'no dos partition found' >[1=2]
55                 exit no.pidos
56         }
57         mount -c '#s/dos' /n/pidos $part
58 # arbitrary venti archives
59 case vac:*
60         vacfs <{echo $1}
61 case *.vac
62         if (test -e $1)
63                 score=$1
64         if not if (! ~ $1 /* && test -e $home/lib/vac/$1)
65                 score=$home/lib/vac/$1
66         if not if (! ~ $1 /* && test -e /lib/vac/$1)
67                 score=/lib/vac/$1
68         if not {
69                 echo $0: $1: no such score file >[1=2]
70                 exit 'no score file'
71         }
72         vacfs -m /n/`{basename $1 .vac} `{cat $score}
73 case wiki
74         srv -m 'net!plan9.bell-labs.com!wiki' wiki /mnt/wiki
75 case *
76         switch($#*){
77         case 1
78                 srv -m $1
79         case *
80                 srv -m $1 $1 $2
81         }
82 }