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