From 8fb8cf52d2bf96beda40c30134e04a352ff988b4 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 15 Oct 2009 21:10:41 +0100 Subject: [PATCH] routesearch: improve arg parsing --- yarrg/rsmain.c | 13 ++++++++----- yarrg/web/query_routesearch | 16 +++++++--------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/yarrg/rsmain.c b/yarrg/rsmain.c index 2e1c500..f99f866 100644 --- a/yarrg/rsmain.c +++ b/yarrg/rsmain.c @@ -30,6 +30,7 @@ int main(int argc, const char **argv) { const char *arg; int i, ap; int granui; + const char *database=0; #ifndef debug_flags debug_flags= ~( dbg_sql2 ); @@ -38,14 +39,18 @@ int main(int argc, const char **argv) { for (;;) { arg= *++argv; if (arg[0] != '-') break; + if (!strcmp(arg,"-d")) { + database= *++argv; + } else if (!strcmp(arg,"-g")) { + granus= atoi(*++argv); + assert(granus>=1 && granus<=GRANUS); #ifndef debug_flags - if (!strcmp(arg,"-DN")) { + } else if (!strcmp(arg,"-DN")) { debug_flags= 0; } else if (!strcmp(arg,"-D1")) { debug_flags= ~(dbg_sql2|dbg_lp|dbg_value2); - } else + } else { #endif - { abort(); } } @@ -77,8 +82,6 @@ int main(int argc, const char **argv) { debug_file= stderr; } - const char *database= *argv++; - sysassert( !setvbuf(debug,0,_IOLBF,0) ); max_mass= atof(*argv++); diff --git a/yarrg/web/query_routesearch b/yarrg/web/query_routesearch index 34fbc22..6f05135 100644 --- a/yarrg/web/query_routesearch +++ b/yarrg/web/query_routesearch @@ -56,6 +56,7 @@ my $qa= \%ARGS; my $routeparams= { EmsgRef => \$emsg, SayRequiredCapacity => 1 }; my $maxdist; my $maxcountea=10; +my $maxcpu=10; @@ -122,7 +123,7 @@ my $isleinfo = sub { #---------- compute the results ---------- -my @rsargs; +my @rsargs= qw(-DN); foreach my $k (qw(MaxMass MaxVolume MaxCapital)) { my $v= $routeparams->{$k}; @@ -130,20 +131,18 @@ foreach my $k (qw(MaxMass MaxVolume MaxCapital)) { } push @rsargs, defined $routeparams->{LossPerLeaguePct} ? $routeparams->{LossPerLeaguePct}*0.01 : 1e-9; -push @rsargs, 'search', $maxcountea,$maxcountea, $maxdist, 'any', @islandids; +push @rsargs, 'search',$maxdist, $maxcountea,$maxcountea, 'any', @islandids; m/[^-.0-9a-zA-Z]/ and die "$_ $& ?" foreach @rsargs; -unshift @rsargs, dbw_filename($qa->{'Ocean'}); -unshift @rsargs, qw(-DN); - if ($qa->{'debug'}) { [[ <% "@rsargs" |h %> ]]
 <%perl>
 }
 
-unshift @rsargs, sourcebasedir().'/yarrg/routesearch';
+unshift @rsargs, sourcebasedir().'/yarrg/routesearch',
+	'-d', dbw_filename($qa->{'Ocean'});
 
 my %results; # $results{$ap}{"5 6 9 10"} = { stuff }
 
@@ -152,8 +151,7 @@ my $child= $fh->open("-|"); defined $child or die $!;
 if (!$child) {
 	my $cpu= BSD::Resource::RLIMIT_CPU;
 	my ($soft,$hard)= getrlimit($cpu);
-	my $max=10;
-	setrlimit($cpu,$max,$hard) or die $! if $soft>$max;
+	setrlimit($cpu,$maxcpu,$hard) or die $! if $soft>$maxcpu;
 	exec @rsargs;
 	die $!;
 }
@@ -222,7 +220,7 @@ if ($qa->{'debug'}) {
 <% $item->{A} |h %>
 <% $item->{P} |h %>
 <% join ', ', @{ $item->{Archs} } |h %>
-<% $item->{Start} |h %>, 
+<% $item->{Start} |h %>,
 <% join ' ', map { $_.',' } @{ $item->{Vias} } |h %>
 <% $item->{Finish} |h %>
 
-- 
2.30.2