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

Comparing COMP/SCRAM/src/BuildSystem/Tool.pm (file contents):
Revision 1.1.2.4 by williamc, Wed Apr 19 09:16:47 2000 UTC vs.
Revision 1.1.2.8.2.1 by williamc, Fri Aug 11 14:26:18 2000 UTC

# Line 25 | Line 25
25   # dependencies()   : return a list of dependency objects
26   # store(location)   : Save object to given file
27   # restore(location) : Restore object from specified file
28 + # reset()           : Clean out all the features
29 + # equals(toolobj)       : return 1 if the tools correspond in url version etc.
30  
31   package BuildSystem::Tool;
32 + use Utilities::Verbose;
33   require 5.004;
34 + @ISA=qw(Utilities::Verbose);
35  
36   sub new {
37          my $class=shift;
# Line 57 | Line 61 | sub url {
61            :$self->{url};
62   }
63  
64 + sub equals {
65 +        my $self=shift;
66 +        my $tool=shift;
67 +
68 +        my $rv=0;
69 +        if ( ($tool->url() eq $self->url() ) &&
70 +             ($tool->name() eq $self->name() ) &&
71 +             ($tool->version() eq $self->version()) ) {
72 +          $rv=1;
73 +        }
74 +        return $rv;
75 + }
76 +
77   sub listtype {
78          my $self=shift;
79          my $type=shift;
# Line 99 | Line 116 | sub setfeature {
116          @{$self->{features}{$name}}=@value;
117   }
118  
119 + sub reset {
120 +        my $self=shift;
121 +        undef $self->{features};
122 +        undef $self->{'features_ordered'};
123 +        undef $self->{reqobjs};
124 +        undef $self->{requireposition};
125 + }
126  
127   sub _newfeature {
128          my $self=shift;
# Line 170 | Line 194 | sub store {
194          my $location=shift;
195  
196          my $fh=FileHandle->new();
197 +        $self->verbose("opening $location for output");
198          $fh->open(">".$location) or die "Unable to open $location for output".
199                                  $!."\n";
200          print $fh "name:".$self->name().":_sys\n";
# Line 191 | Line 216 | sub restore {
216          $fh->open("<".$location) or die "Unable to open $location for output".
217                                  $!."\n";
218          my ($tool,$type,$variable,$value);
219 +        my @fields;
220          while ( <$fh> ) {
221            chomp;
222            next if /^#/;
223            next if /^\s*$/;
224 <          ($variable, $value, $type)=split /:/;
224 >          @fields=split /:/;
225 >          if ( $_!~/:$/ ) {
226 >            $type=pop @fields;
227 >          }
228 >          else { $type="" };
229 >          $variable=shift @fields;
230 >          $value=join ":",@fields;
231 >          #($variable, $value, $type)=split /:/;
232            next if ( $variable=~/\&/ );
233            $product=~tr[A-Z][a-z];
234            if ( $type eq "_sys" ) {
# Line 205 | Line 238 | sub restore {
238            }
239            else {
240              $self->addfeature($variable,$value);
241 +            if ( $type ne "" ) {
242 +               $self->type($variable,$type);
243 +            }
244            }
245          }
246          undef $fh;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines