]> git.lizzy.rs Git - plan9front.git/blob - sys/src/9/boot/local.rc
merge
[plan9front.git] / sys / src / 9 / boot / local.rc
1 #!/bin/rc
2
3 fn showlocaldev {
4         echo $1'        ' $2
5         if(~ $#bootargs 0){
6                 if(! ~ $#cdboot 0){
7                         if(~ $2 9660)
8                                 bootargs=local!$1
9                 }
10                 if not {
11                         if(! ~ $2 '' dos)
12                                 bootargs=local!$1
13                 }
14         }
15 }
16
17 fn showlocaldevs{
18         for(d in /dev/sd*) if(test -r $d/ctl){
19                 q=`{sed 's,(inquiry|geometry),\
20 \1,g' $d/ctl | grep inquiry}
21                 echo $d':' $q(2-)
22                 for(i in `{ls -p $d}){
23                         p=$d/$i
24                         switch($i){
25                         case ctl raw log led
26                                 ;
27                         case plan9 nvram swap
28                                 echo $p
29                         case *
30                                 showlocaldev $p `{fstype $p}
31                         }
32                 }
33         }
34         for(d in /shr/sd*) if(test -d $d) {
35                 echo $d':'
36                 for(p in $d/*.^(iso kfs paq)) if(test -f $p){
37                         t=`{fstype $p}
38                         ~ $#t 0 || showlocaldev $p $t
39                 }
40         }
41 }
42
43 fn configlocal{
44         diskparts
45 }
46
47 fn bootfs{
48         {$1 -s -f $*(2-) &} <[0=1] | echo 0 >/srv/boot
49 }
50
51 fn connectlocal{
52         if(test -f $1)
53                 t=`{fstype $1}
54         if not {
55                 t=$1; shift
56         }
57         switch($t){
58         case ''
59                 fatal unknown fstype $1
60         case 9660
61                 bootfs 9660srv $*
62         case dos
63                 bootfs dossrv $*
64         case kfs
65                 bootfs disk/kfs $*
66         case *
67                 bootfs $t $*
68         }
69 }
70
71 mlocal=(configlocal connectlocal)
72 mt=(mlocal $mt)