Split the creation of the suite index pages out of create_index_pages
[deb/packages.git] / bin / create_suite_index_pages
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use POSIX;
7 use Storable;
8
9 use lib './lib';
10
11 use Packages::CommonCode qw(:all);
12 use Packages::Config qw( $TOPDIR $DBDIR @ARCHIVES @SUITES @LANGUAGES );
13 use Packages::Template;
14 use Packages::I18N::Locale;
15 use Packages::Sections;
16 &Packages::Config::init( './' );
17
18 my $wwwdir = "$TOPDIR/www";
19
20 my $subsections = retrieve "$DBDIR/subsections.info";
21
22 #use Data::Dumper;
23 #print STDERR Dumper($sections, $subsections, $priorities);
24
25 my (%pages);
26
27 my $template = new Packages::Template( "$TOPDIR/templates", 'html');
28
29 print "write suite index files ...\n";
30 foreach my $s (@SUITES) {
31     my $key = $s;
32     mkdirp ( "$wwwdir/$key" );
33     mkdirp ( "$wwwdir/source/$key" );
34     foreach my $lang (@LANGUAGES) {
35         my $charset = 'UTF-8';
36         my $cat = Packages::I18N::Locale->get_handle($lang)
37             or die "get_handle failed for $lang";
38         print "writing $key/index (lang=$lang)...\n";
39
40         my %content = ( subsections => [], suite => $s,
41                         po_lang => $lang, ddtp_lang => $lang,
42                         charset => $charset, cat => $cat,
43                         used_langs => \@LANGUAGES, suites => \@SUITES );
44         foreach my $ssec (sort (keys %{$subsections->{$s}}, 'virtual')) {
45             next if $ssec eq '-';
46             if ($sections_descs{$ssec}) {
47                 push @{$content{subsections}}, {
48                     id => $ssec,
49                     name => $cat->g($sections_descs{$ssec}[0]),
50                     desc => $cat->g($sections_descs{$ssec}[1]),
51                 };
52             }
53         }
54
55         $template->page( 'suite_index', \%content,
56                          "$wwwdir/$key/index.$lang.html.new");
57         activate( "$wwwdir/$key/index.$lang.html" );
58
59         $content{source} = 'source';
60         $template->page( 'suite_index', \%content,
61                          "$wwwdir/source/$key/index.$lang.html.new");
62         activate( "$wwwdir/source/$key/index.$lang.html" );
63
64     }
65 }