]> git.lizzy.rs Git - plan9front.git/blobdiff - rc/bin/inst/mountdist
audiohda: fix syntax error
[plan9front.git] / rc / bin / inst / mountdist
index 60ebdf2f7bb8bc51264b520944a92d3e8b5276f9..f3fb5dde0c7f2c185518c455c73dd5d9e0b32c8c 100755 (executable)
@@ -11,14 +11,42 @@ fn domount{
 }
 
 fn exitifdone{
-       if(test -f /n/dist/LICENSE)
+       if(test -d /n/dist/dist/plan9front)
                exit
 }
 
 fn havedist {
-       test -f $1/LICENSE
+       test -d $1/dist/plan9front || test -f $1/9front.iso || test -f $1/9front.iso.bz2
 }
 
+fn trycdimage{
+       if(test -f $1){
+               rm -f /srv/9660.dist
+               unmount /n/dist >[2]/dev/null
+               9660srv 9660.dist >[2]/dev/null
+               logprog mount /srv/9660.dist /n/dist $1
+               exitifdone
+               mountdist=notdone
+               export mountdist
+               exit notdone
+       }
+}
+
+fn trycdimagebz2 {
+       if(test -f $1){
+               mkdir -p /n/newfs/dist
+               echo -n 'bunzip2 < '^$1^' >/n/newfs/dist/9front.iso'
+               bunzip2 < $1 >/n/newfs/dist/_9front.iso &&
+               mv /n/newfs/dist/_9front.iso /n/newfs/dist/9front.iso
+               echo
+               trycdimage /n/newfs/dist/9front.iso
+               mountdist=notdone
+               export mountdist
+               exit notdone
+       }
+}
+
+
 switch($1){
 case checkready
        if(! ~ $distisfrom local && ! ~ $download done){
@@ -29,7 +57,7 @@ case checkready
                if(domount){
                        mountdist=done
                        export mountdist
-                       if(mountdist checkdone)
+                       if(./mountdist checkdone)
                                exit
                }
                srvmedia=()
@@ -40,23 +68,21 @@ case checkready
                
 case go
        fat=()
-       ext2=()
        x9660=()
 
        echo Please wait... Scanning storage devices...
 
-       parts=`{ls /dev/sd[A-Z][0-9]*/* >[2]/dev/null | grep -v '/(plan9.*|ctl|log|raw)$'}
+       parts=`{ls /dev/sd*/* /srv/sd*/*.iso >[2]/dev/null |
+               grep -v '/(plan9.*|nvram|ctl|log|raw)$'}
        for (i in $parts) {
                echo -n '       '^$i
-               n=`{echo $i | sed 's;/;_;g'}
-               if(! test -f /tmp/localpart.$n)
-                       dd -if $i -bs 2048 -count 32 -of /tmp/localpart.$n >[2]/dev/null
-               if(isfat /tmp/localpart.$n)
+               t=`{fstype $i}
+               switch($t){
+               case dos
                        fat=($fat $i)
-               if(isext2 /tmp/localpart.$n)
-                       ext2=($ext2 $i)
-               if(is9660 /tmp/localpart.$n)
+               case 9660
                        x9660=($x9660 $i)
+               }
                echo
        }
        echo
@@ -67,8 +93,6 @@ case go
                switch($i){
                case $fat
                        echo    '       '^$i^' (microsoft fat)'
-               case $ext2
-                       echo    '       '^$i^' (linux ext2)'
                case $x9660
                        echo    '       '^$i^' (iso9660 cdrom)'
                }
@@ -77,20 +101,22 @@ case go
 
        mountstatus=x
        while(! ~ $mountstatus ''){
-               prompt -w '' 'Distribution disk' $fat $x9660
+               default=()
+               if(! ~ $#cdboot 0)
+                       default=(-d /)
+               prompt $default 'Distribution disk' $fat $x9660 $fs /
                disk=$rd
 
                srvmedia=()
                mountmedia=()
                switch($disk){
+               case /
+                       mountmedia=(mount /srv/boot /n/distmedia)
                case $fs
                        mountmedia=(bind /n/newfs /n/distmedia)
                case $fat
                        srvmedia=(dossrv)
                        mountmedia=(mount /srv/dos /n/distmedia $disk)
-               case $ext2
-                       srvmedia=(ext2srv -r)
-                       mountmedia=(mount /srv/ext2 /n/distmedia $disk)
                case $x9660
                        srvmedia=(9660srv)
                        mountmedia=(mount /srv/9660 /n/distmedia $disk)
@@ -111,6 +137,8 @@ case go
                        echo Which directory contains the distribution?
                        echo 'Any of the following will suffice (in order of preference):'
                        echo '  - the root directory of the cd image'
+                       echo '  - the directory containing 9front.iso'
+                       echo '  - the directory containing 9front.iso.bz2'
                        echo
                        first=no
                }
@@ -142,7 +170,7 @@ case checkdone
 
        exitifdone
 
-       if(havedist /n/distmedia/$distmediadir){
+       if(test -d /n/distmedia/$distmediadir/dist/plan9front){
                bind /n/distmedia/$distmediadir /n/dist
                exitifdone
                mountdist=notdone
@@ -150,6 +178,12 @@ case checkdone
                exit notdone
        }
 
+       trycdimage /n/distmedia/$distmediadir/9front.iso
+       trycdimage /n/newfs/dist/9front.iso
+
+       trycdimagebz2 /n/distmedia/$distmediadir/9front.iso.bz2
+       trycdimagebz2 /n/newfs/dist/9front.iso.bz2
+
        mountdist=notdone
        export mountdist
        exit notdone