]> git.deb.at Git - deb/packages.git/blob - lib/Packages/DoNewPkg.pm
Remove some unneeded includes
[deb/packages.git] / lib / Packages / DoNewPkg.pm
1 package Packages::DoNewPkg;
2
3 use strict;
4 use warnings;
5
6 use POSIX;
7 use CGI ();
8 use Exporter;
9 our @ISA = qw( Exporter );
10 our @EXPORT = qw( do_newpkg );
11
12 use Packages::I18N::Locale;
13 use Packages::Search qw( :all );
14 use Packages::CGI;
15 use Packages::DB;
16 use Packages::Config qw( $TOPDIR @SECTIONS $ROOT );
17
18 sub do_newpkg {
19     my ($params, $opts, $page_content) = @_;
20
21     if ($params->{errors}{suite}) {
22         fatal_error( _g( "suite not valid or not specified" ) );
23     }
24     if (@{$opts->{suite}} > 1) {
25         fatal_error( sprintf( _g( "more than one suite specified for show (%s)" ), "@{$opts->{suite}}" ) );
26     }
27
28     my $sort_func = sub { $_[0][0] cmp $_[1][0] };
29     $sort_func = sub { $_[0][1] <=> $_[1][1] or $_[0][0] cmp $_[1][0] }
30         if $opts->{mode} eq 'byage';
31
32     my $suite = $opts->{suite}[0];
33     my $one_archive = @{$opts->{archive}} == 1 ?
34         $opts->{archive}[0] : undef;
35     my $one_section = @{$opts->{section}} == 1 ?
36         $opts->{section}[0] : undef;
37
38     my @new_pkgs;
39     #FIXME: move to Packages::DB?
40     open NEWPKG, '<', "$TOPDIR/files/packages/newpkg_info"
41         or die "can't read newpkg_info file: $!";
42     while (<NEWPKG>) {
43         chomp;
44         my @data = split /\s/, $_, 10;
45
46         next unless $data[2]; #removed packages
47         next unless $data[3] eq $suite;
48         next if $one_archive and $data[2] ne $one_archive;
49         next if $one_section and $data[5] ne $one_section;
50
51         debug( "new pkg: @data", 1 ) if DEBUG;
52         push @new_pkgs, \@data;
53     }
54     close NEWPKG;
55     
56     (my @date)= gmtime();
57     #FIXME: compute in the template
58     $page_content->{rss_timestamp} = strftime ("%Y-%m-%dT%H:%M+00:00", @date);
59
60     if (@new_pkgs) {
61         $page_content->{new_packages} = [ sort { &$sort_func($a,$b) } @new_pkgs ];
62     }
63
64     $page_content->{suite} = $suite;
65     $page_content->{section} = $one_section if $one_section;
66     $page_content->{archive} = $one_archive if $one_archive;
67     $page_content->{sections} = \@SECTIONS;
68
69 }
70
71 1;