attempt a fix of remote venti case Reference: /n/atom/patch/applied/inst64remoteventi Date: Sat Apr 5 17:47:21 CES 2014 Signed-off-by: quanstro@quanstro.net --- /sys/lib/dist/amd64/install/copydistf Sat Apr 5 17:47:15 2014 +++ /sys/lib/dist/amd64/install/copydistf Sat Apr 5 17:47:16 2014 @@ -50,9 +50,9 @@ }} fn checkip { - err=`{echo $vaddr | awk -F. ' + err=`{{for(i)echo $i} | awk -F. ' NF<2||NF>4 { - print "wrong number of octets" + print "wrong number of octets " NF exit 1 } { @@ -65,17 +65,29 @@ ' } } +fn checkvaddr {x=`!{echo -n $1}{ + if(~ $#x 1) + x=(tcp $x 17034) + if(~ $#x 2 && ~ $x(1) [a-z][a-z] [a-z][a-z][a-z]) + x=($x 17034) + if(~ $#x 2) + x=(tcp $x) + vaddr=`{echo -n $x | sed 's/ /!/g'} + err='need tcp!192.168.0.1!17034-style address' + ~ $#x 3 && checkip $x(2) && err=() +}} + fn ventiaddr{ vaddr=tcp!127.1!17034 pick 'configure non-local venti ip?' yns no if(~ $cmd yes){ while(){ - echo -n venti address ': ' + echo -n venti address ^ ': ' getcmd vaddr = $cmd - checkip + checkvaddr $vaddr ~ $#err 0 && break - echo bad ip: $#x>[1=2] + echo bad ip: $err>[1=2] } } }