From: joden Date: Wed, 18 Aug 2004 00:41:48 +0000 (+0000) Subject: - Fixed duplicate requires bug. X-Git-Tag: tznext/4.11.0.1.tizen20130304~6387 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=52bd07cec8e3bfd8370139af7a236ab77ba0ed70;p=tools%2Flibrpm-tizen.git - Fixed duplicate requires bug. - Was not showing provides (not exists, shoudl have been exists on the ignore check). CVS patchset: 7397 CVS date: 2004/08/18 00:41:48 --- diff --git a/scripts/perldeps.pl b/scripts/perldeps.pl index 7a4baad..15e8902 100644 --- a/scripts/perldeps.pl +++ b/scripts/perldeps.pl @@ -11,9 +11,7 @@ my $result = GetOptions("provides" => \$show_provides, "ignore=s" => \@ignores); my %ignores = map { $_ => 1 } @ignores; -if (not $result) { - exit 1; -} +exit(1) if (not $result); my $deps = new DependencyParser; for my $file (grep /^[^-]/, @ARGV) { @@ -23,25 +21,28 @@ for my $file (grep /^[^-]/, @ARGV) { if ($show_requires) { for my $req ($deps->requires) { my $verbage = ""; - if (not exists $ignores{$req->to_string}) { - printf "%s%s\n", $req->to_string, $verbage; - } + next if (exists $ignores{$req->to_string}); + printf "%s%s\n", $req->to_string, $verbage; } } if ($show_provides) { for my $prov ($deps->provides) { my $verbage = ""; - if (not exists $ignores{$prov->to_string}) { - printf "%s%s\n", $prov->to_string, $verbage; - } + next if (exists $ignores{$prov->to_string}); + printf "%s%s\n", $prov->to_string, $verbage; } } +exit(0); + +#################### +# Dependency Class # +#################### package Dependency; sub new { my $class = shift; - my $type = shift; + my $type = shift; my $value = shift; return bless { type => $type, value => $value }, $class; @@ -139,11 +140,24 @@ sub add_provide { die "DependencyParser->add_provide requires -filename, -provide, and -type" if not exists $params{-filename} or not exists $params{-provide} or not exists $params{-type}; + # + # Make sure this one has not been added already + $self->{'provides_check'} ||= { }; + return if(exists($self->{'provides_check'}->{$params{'-provide'}})); + + # + # Created dependency object my $dep = new Dependency "provide", $params{-provide}; $dep->filename($params{-filename}); $dep->type($params{-type}); $dep->line_number($params{-line}) if $params{-line}; + # + # Add to requires check list + $self->{'provides_check'}->{$params{'-provide'}} = 1; + + # + # Add to list push @{$self->{provides}}, $dep; } @@ -153,11 +167,24 @@ sub add_require { die "DependencyParser->add_require requires -filename, -require, and -type" if not exists $params{-filename} or not exists $params{-require} or not exists $params{-type}; + # + # Make sure this one has not been added already + $self->{'requires_check'} ||= { }; + return if(exists($self->{'requires_check'}->{$params{'-require'}})); + + # + # Create dependency object. my $dep = new Dependency "require", $params{-require}; $dep->filename($params{-filename}); $dep->type($params{-type}); $dep->line_number($params{-line}) if $params{-line}; + # + # Add to requires check list + $self->{'requires_check'}->{$params{'-require'}} = 1; + + # + # Add to list push @{$self->{requires}}, $dep; } @@ -166,6 +193,7 @@ sub process_file { my $filename = shift; if (not open FH, "<$filename") { + # XXX: Should be die IMHO...JOO warn "Can't open $filename: $!"; return; }