newpkg_info: Fix handling of removed packages
authorFrank Lichtenheld <frank@lichtenheld.de>
Mon, 3 Sep 2007 23:17:23 +0000 (01:17 +0200)
committerFrank Lichtenheld <frank@lichtenheld.de>
Mon, 3 Sep 2007 23:17:23 +0000 (01:17 +0200)
Don't waste time on calling read_entry_simple for removed
packages. Also fix error detection for this call. The result
is always defined (and an array reference), errors can be
detected by checking whether the referenced array is empty.

bin/newpkg_info

index e2f36aef9790dcd4d7ec14136a9abb6d8fec73ac..700a07989b5345cda1c63ab743655cb61e18d293 100755 (executable)
@@ -64,9 +64,13 @@ for (my $age = 0; $age < 7; $age++) {
 
     my %archives = map { $_ => 1 } qw( us security non-US );
     foreach (sort keys %changes) {
-       my $entry = read_entry_simple( \%packages, $_, \%archives, $suite)
-           or die "Fatal Error: Can't find entry for package $_\n";
-       shift @$entry; # remove virtual pkg info
+       my $entry = [];
+       if ($changes{$_} == 1) {
+           $entry = read_entry_simple( \%packages, $_, \%archives, $suite);
+           die "Fatal Error: Can't find entry for package $_\n"
+               unless @$entry;
+           shift @$entry; # remove virtual pkg info
+       }
        print CHANGES join(" ", $_, $age, @$entry)."\n";
        print "Wrote entry: ".join(" ", $_, $age, @$entry)."\n";
     }