ref: b51b623725ce394a1f9f12686f043c1cc3bba7c9
dir: /sys/src/9/boot/local.rc/
#!/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{ 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 led smart ; 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 paq)) if(test -f $p){ t=`{fstype $p} ~ $#t 0 || showlocaldev $p $t } } } fn configlocal{ diskparts } fn bootfs{ {$1 -s -f $*(2-) <[0=1] &} | echo 0 >/srv/boot } fn connectlocal{ if(~ $#* 0){ echo local method needs an argument } if not { if(test -f $1) t=`{fstype $1} if not { t=$1; shift } switch($t){ case '' fatal unknown fstype $1 case 9660 bootfs 9660srv $* case dos bootfs dossrv $* case * bootfs $t $* } } } mlocal=(configlocal connectlocal) mt=(mlocal $mt)