use strict;
use warnings;
-use Benchmark ':hireswallclock';
-use HTML::Entities;
use POSIX;
-use XML::RSS;
use CGI ();
use Exporter;
our @ISA = qw( Exporter );
our @EXPORT = qw( do_newpkg );
-use Packages::I18N::Locale;
use Packages::Search qw( :all );
use Packages::CGI;
use Packages::DB;
use Packages::Config qw( $TOPDIR @SECTIONS $ROOT );
sub do_newpkg {
- my ($params, $opts, $html_header, $page_content) = @_;
+ my ($params, $opts, $page_content) = @_;
+ my $cat = $opts->{cat};
if ($params->{errors}{suite}) {
- fatal_error( _g( "suite not valid or not specified" ) );
+ fatal_error( $cat->g( "suite not valid or not specified" ) );
}
if (@{$opts->{suite}} > 1) {
- fatal_error( sprintf( _g( "more than one suite specified for show (%s)" ), "@{$opts->{suite}}" ) );
+ fatal_error( $cat->g( "more than one suite specified for newpkg (%s)",
+ "@{$opts->{suite}}" ) );
}
my $sort_func = sub { $_[0][0] cmp $_[1][0] };
$sort_func = sub { $_[0][1] <=> $_[1][1] or $_[0][0] cmp $_[1][0] }
- if $opts->{mode} eq 'byage';
+ if $opts->{mode} eq 'byage';
my $suite = $opts->{suite}[0];
my $one_archive = @{$opts->{archive}} == 1 ?
$opts->{section}[0] : undef;
my @new_pkgs;
- #FIXME: move to Packages::DB?
- open NEWPKG, '<', "$TOPDIR/files/packages/newpkg_info"
- or die "can't read newpkg_info file: $!";
+ open NEWPKG, '<', "$TOPDIR/files/packages/newpkg_info_$suite"
+ or do {
+ warn "can't read newpkg_info_$suite: $!";
+ fatal_error( $cat->g("no newpkg information found for suite %s",
+ $suite) );
+ return;
+ };
while (<NEWPKG>) {
chomp;
- my @data = split /\s/, $_, 10;
+ my @data = split /\s/, $_, 11;
+ next unless $data[2]; #removed packages
next unless $data[3] eq $suite;
next if $one_archive and $data[2] ne $one_archive;
next if $one_section and $data[5] ne $one_section;