205 |
|
return $string; |
206 |
|
} |
207 |
|
|
208 |
+ |
sub _askusermenu { |
209 |
+ |
my $self=shift; |
210 |
+ |
my $querystring=shift; |
211 |
+ |
my @items=@_; |
212 |
+ |
|
213 |
+ |
my $path=-1; |
214 |
+ |
while ( ($path!~/^\d+$/) || ($path > $#items) || ($path < 0) ) { |
215 |
+ |
for (my $i=0; $i<=$#items; $i++ ) { |
216 |
+ |
print $i.") ".$items[$i]."\n"; |
217 |
+ |
} |
218 |
+ |
print "\n".$querystring; |
219 |
+ |
$path=<STDIN>; |
220 |
+ |
chomp $path; |
221 |
+ |
} |
222 |
+ |
return $path; |
223 |
+ |
} |
224 |
|
|
225 |
|
sub _askuser { |
226 |
|
my $self=shift; |
266 |
|
$self->verbose("Searching for ".$tool->name()." ". |
267 |
|
$tool->version()." in ".$area->location()); |
268 |
|
$rtool=$area->toolbox()->gettool($tool->name(),$tool->version()); |
269 |
< |
if ( (defined $rtool) && $rtool->equals($tool) ) { |
269 |
> |
if ( defined $rtool ) { |
270 |
> |
if ( $rtool->equals($tool) ) { |
271 |
> |
$self->verbose("Found matching tool"); |
272 |
|
push @tools,$rtool; |
273 |
+ |
} |
274 |
+ |
else { |
275 |
+ |
$self->verbose("Rejected tool ".$rtool->name()." " |
276 |
+ |
.$rtool->version()); |
277 |
+ |
} |
278 |
|
} |
279 |
|
} |
280 |
+ |
else { |
281 |
+ |
$self->verbose("Area passed is not defined"); |
282 |
+ |
} |
283 |
|
} |
284 |
|
} |
285 |
|
return @tools; |
389 |
|
my ($rv,@params)= |
390 |
|
$self->_toolparamcopy($self->{tool},$$hashref{'name'}); |
391 |
|
if ( $rv && ($#params == 0)) { #dont use multivalued params! |
392 |
< |
$self->{Envvalue}=$params[0]; # single val parameter |
392 |
> |
# -- if default is OK as well ask user which one to choose |
393 |
> |
my $val=$params[0]; |
394 |
> |
if ( $self->_checkdefault($hashref) ) { |
395 |
> |
# -- many options - just ask the user |
396 |
> |
my $expdef=$self->_expandvars($$hashref{'default'}); |
397 |
> |
if ( $expdef ne $val ) { |
398 |
> |
my $in=$self->_askusermenu( |
399 |
> |
"Multiple possibilities found. Please Choose:", |
400 |
> |
($params[0],$expdef,"Other")); |
401 |
> |
if ( $in == 1 ) { |
402 |
> |
$val=$expdef; |
403 |
> |
} |
404 |
> |
elsif ( $in == 2 ) { |
405 |
> |
$val=$self->_askuser("Please Enter Value:",$$hashref{'name'}); |
406 |
> |
} |
407 |
> |
} |
408 |
> |
} |
409 |
> |
$self->{Envvalue}=$val; # single val parameter |
410 |
|
} |
411 |
|
elsif ( defined $ENV{$$hashref{'name'}} ) { |
412 |
|
# check the environment |