]> git.donarmstrong.com Git - wannabuild.git/blobdiff - bin/wanna-build
Don't requests all the packages again in the same function
[wannabuild.git] / bin / wanna-build
index 2e4a014cf59259735f76ff1e79ba4df9710f5db0..63416591d29f282ee54508259c971a0794a96a7b 100755 (executable)
@@ -1162,7 +1162,7 @@ sub parse_sources {
        my $name;
        my $full = shift;
 
-       my $pkgs = get_all_source_info();
+       my $db = get_all_source_info();
 
        local($/) = ""; # read in paragraph mode
        while( <> ) {
@@ -1184,7 +1184,7 @@ sub parse_sources {
                $pkgs{$name}{'bin'} = $binaries;
                $pkgs{$name}{'dep'} = $builddep;
                $pkgs{$name}{'conf'} = $buildconf;
-               my $pkg = $pkgs->{$name};
+               my $pkg = $db->{$name};
 
                if (defined $pkg) {
                        my $change = 0;
@@ -1197,6 +1197,7 @@ sub parse_sources {
                                          "from database, because now Arch: all\n"
                                                  if $verbose;
                                del_source_info($name);
+                               delete $db->{$name};
                                next;
                        }
 
@@ -1224,7 +1225,6 @@ sub parse_sources {
         }
        # remove installed packages that no longer have source available
        # or binaries installed
-        my $db = get_all_source_info();
         foreach $name (keys %$db) {
                next if $name =~ /^_/;
                my $pkg = $db->{$name};
@@ -1236,6 +1236,7 @@ sub parse_sources {
                                  "not in Sources anymore\n"
                                          if $verbose;
                        del_source_info($name);
+                       delete $db->{$name};
                } else {
                        next if !isin( $pkg->{'state'}, qw(Installed) );
                        if ($full && not defined $merge_srcvers{$name}) {
@@ -1246,6 +1247,7 @@ sub parse_sources {
                                       "binaries don't exist anymore\n"
                                               if $verbose;
                            del_source_info($name);
+                           delete $db->{$name};
                         } elsif ($full && version_less( $merge_srcvers{$name}, $pkg->{'version'})) {
                             print "$name ($pkg->{'version'}): ".
                                       "package is Installed but binaries are from ".
@@ -2502,7 +2504,7 @@ sub get_all_source_info {
        }
 
        if ($options{list_min_age} < 0) {
-               $q .= ' AND age(state_change::timestamp) < ? days ';
+               $q .= ' AND age(state_change::timestamp) < ? ';
                push @args, -$options{list_min_age} . " days";
        }