ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/BuildSystem/ToolDoc.pm
(Generate patch)

Comparing COMP/SCRAM/src/BuildSystem/ToolDoc.pm (file contents):
Revision 1.2 by williamc, Mon Aug 28 08:23:10 2000 UTC vs.
Revision 1.3 by williamc, Mon Oct 23 12:56:03 2000 UTC

# Line 205 | Line 205 | sub _expandvars {
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;
# Line 250 | Line 266 | sub _searchtools {
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;
# Line 363 | Line 389 | sub Environment_Start {
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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines