]> git.lizzy.rs Git - plan9front.git/blob - sys/src/9/boot/local.rc
boot(8): changed tread to read, other: fix perms
[plan9front.git] / sys / src / 9 / boot / local.rc
1 #!/bin/rc
2
3 cddevs=()
4
5 # fill cddevs with cd or dvd devices
6 fn findcds{
7         for(dev in /dev/sd*){
8                 x=`{sed '/([Cc][Dd]|[Dd][Vv][Dd])/!d' $dev/ctl >[2]/dev/null}
9                 if(! ~ $#x 0)
10                         cddevs=($cddevs $dev)
11         }
12 }
13
14 fn configlocal{
15         disk=`{echo $methodarg | sed 's,(.*)!.*,\1,g'}
16         fstype=`{echo $disk | sed 's,.*/(.*)$,\1,g'}
17         disk=`{echo $disk | sed 's,(.*)/.*$,\1,'}
18
19         if(~ $pcload 1){
20                 kern=`{echo $methodarg | sed 's,.*!(.*)$,\1,g'}
21
22                 # for now we only allow kernels in the same dev/part of $methodargs
23                 if(~ $#kern 0 || ! ~ $#bootfile 0)
24                         kern=`{echo $bootfile | sed 's,.*!(.*)$,\1,g'}
25         }
26
27         bind -a '#c' /dev >/dev/null >[2=1] 
28         bind '#p' /proc >[2=1] >/dev/null >[2=1]  
29         bind -a '#S' /dev >/dev/null >[2=1] 
30         bind -a '#f' /dev >/dev/null >[2=1] 
31         bind -a '#k' /dev >/dev/null >[2=1] 
32         bind -a '#æ' /dev >/dev/null >[2=1] 
33
34         diskparts
35         findcds
36 }
37
38 fn connectlocal{
39         switch($fstype){
40         case fossil
41                 connectlocalfossil
42         case fs
43                 connectlocalkfs
44         case data
45                 # test for cd/dvd
46                 x=`{sed '/([Cc][Dd]|[Dd][Vv][Dd])/!d' $disk^/ctl}
47                 if(! ~ $#x 0)
48                         must 9660srv -f $disk^/$fstype boot >/dev/null >[2=1]
49         case *
50                 fatal unknown partition $fstype
51         }
52 }
53
54 fn connectlocalfossil{
55         if(! test -x /bin/fossil/fossil){
56                 echo no fossil
57                 exit nofossil
58         }
59
60         partition=$disk^/$fstype
61
62         # settime(1, -1, nil)
63
64         # make venti available
65
66         # start fossil
67         echo 'fossil('$partition')...'
68         must fossil/fossil -f $partition -c 'srv -A boot' -c 'srv -p fscons'
69 }
70
71
72