#!/bin/rc
+fn showlocaldev {
+ echo $1' ' $2
+ if(~ $#bootargs 0){
+ if(! ~ $#cdboot 0){
+ if(~ $2 9660)
+ bootargs=local!$1
+ }
+ if not {
+ if(! ~ $2 '' dos)
+ bootargs=local!$1
+ }
+ }
+}
+
fn showlocaldevs{
- echo local devices found:
- for(d in /dev/sd*){
- if(test -r $d/ctl){
- q=`{sed 's,(inquiry|geometry),\
+ for(d in /dev/sd*) if(test -r $d/ctl){
+ q=`{sed 's,(inquiry|geometry),\
\1,g' $d/ctl | grep inquiry}
- echo $d':' $q(2-)
- for(i in `{ls -p $d}){
- p=$d/$i
- switch($i){
- case ctl raw log
- ;
- case 9fat plan9 nvram
- echo $p
- case *
- t=`{fstype $p}
- if(~ $#bootargs 0 && ! ~ $t '')
- bootargs=local!$p
- echo $p $t
- }
+ echo $d':' $q(2-)
+ for(i in `{ls -p $d}){
+ p=$d/$i
+ switch($i){
+ case ctl raw log led
+ ;
+ case plan9 nvram swap
+ echo $p
+ case *
+ showlocaldev $p `{fstype $p}
}
}
}
+ for(d in /shr/sd*) if(test -d $d) {
+ echo $d':'
+ for(p in $d/*.^(iso kfs paq)) if(test -f $p){
+ t=`{fstype $p}
+ ~ $#t 0 || showlocaldev $p $t
+ }
+ }
}
fn configlocal{
}
fn connectlocal{
- if(test -r $1)
+ if(test -f $1)
t=`{fstype $1}
if not {
t=$1; shift
fatal unknown fstype $1
case 9660
bootfs 9660srv $*
+ case dos
+ bootfs dossrv $*
case kfs
bootfs disk/kfs $*
- case dos
- if(! test -f /srv/dos)
- dossrv
- m=/mnt/dosboot
- must mount /srv/dos $m $1
- shift
- if(~ $#* 0)
- f=$m/9front.iso
- if not
- f=$m/$1
- if(test -r $f)
- connectlocal $f
- if not
- connectlocal $*
case *
bootfs $t $*
}