Update sources suite
[grml-infrastructure.git] / source-report / gen_index
1 #!/usr/bin/perl
2 # Filename:      gen_index
3 # Purpose:       Generates the index.html overview of all source repos 
4 # Authors:       grml-team (grml.org), (c) Alexander Wirt
5 # Bug-Reports:   see http://grml.org/bugs/
6 # License:       This file is licensed under the GPL v2.
7 # Latest change: So Mai 06 22:06:09 CEST 2007 [formorer]
8 ################################################################################
9
10
11 use strict; 
12 use warnings;
13 use English; 
14 use CGI qw/:standard/;
15 use HTML::Table;
16 use File::Basename; 
17
18
19 my $reports = '/home/sources/reports';
20 my @status_files = split("\n", `find $reports -maxdepth 2 -name status.txt`); 
21
22
23 open(my $fh, '>', "$reports/index.html")
24         or die "Could not open '$reports/index.html' for writing: $!"; 
25
26 print $fh start_html("Source Repository for GRML"); 
27 print $fh "<center><h1><a href='http://grml.org/'>GRML</a> Source Repository</h1><br><br>";
28 my $t = new HTML::Table(
29                                 -cols => 5,
30                                 -border=>1,
31                                 -head=> ['Release','Packages','Sources',
32                                 'Errors', 'Last updated', 'sources.list entry'],
33                         );
34
35 foreach my $releasefile (@status_files) {
36         open (my $pfh, '<', "$releasefile") 
37                 or die "Could not open statusfile '$releasefile': $!"; 
38         my ($release, $packages, $sources, $errors, $lastupdated, $baseurl);
39         while (<$pfh>) {        
40                 chomp;
41                 if (/^Updated: (.*)$/) { $lastupdated = $1; next;}
42                 if (/^Sources: (.*)$/) { $sources = $1; next; }
43                 if (/^Title: (.*)$/) { $release = $1; next; }
44                 if (/^Errors: (.*)$/) { $errors = $1; next; }
45                 if (/^Packages: (.*)$/) { $packages = $1; next; }
46                 if (/^Baseurl: (.*)$/) { $baseurl = $1; next; }
47         }
48         $t->addRow(     "<a href='$baseurl'>".lc($release)."</a>", 
49                         "$packages", 
50                         "$sources",
51                         "$errors", 
52                         "$lastupdated",
53                         "deb-src $baseurl ./", 
54                 );
55 }
56 print $fh $t; 
57 print $fh end_html; 
58 close($fh);