X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=tools%2Fremovals.pl;h=0689fffdfdbb324c8716c3d7a5dda76e960b7b37;hb=fc24a0dfb63ab7bebf0a624c08c1335187bf83c4;hp=839fc618c9e060f7fe929825589c1b3a55950af7;hpb=425e44739cd77ffa01294f23e94ae7eabd5f5ec8;p=dak.git diff --git a/tools/removals.pl b/tools/removals.pl index 839fc618..0689fffd 100755 --- a/tools/removals.pl +++ b/tools/removals.pl @@ -2,6 +2,7 @@ # removals - generate an RSS feed of removals from Debian # (C) Copyright 2005 Tollef Fog Heen +# (C) Copyright 2010 Uli Martens # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -26,7 +27,27 @@ use XML::RSS; use POSIX qw(strftime); use CGI qw/:standard/; -open REMOVALS, "\n" unless scalar @ARGV; + +my $config; + +my $cfgfname = $ARGV[0]; +open my $cfgfile, "<", $cfgfname + or die "config file $cfgfname not found: $!\n"; +while (<$cfgfile>){ + chomp; + s/#.*//; + next if m/^$/; + my ($key, $val) = split ": ", $_, 2; + warn "$0: warning: redefining config key $key\n" if defined $config->{$key}; + $config->{$key} = $val; +} +close $cfgfile; + +for ( qw/input items title link description subject creator publisher rights language/ ) { + die "config option '$_' missing in $cfgfname\n" unless $config->{$_}; +} +open REMOVALS, "<", $config->{input}; my @removals; @@ -37,16 +58,16 @@ my @removals; my $rss = new XML::RSS (version => '1.0'); $rss->channel( - title => "Removals from Debian", - link => "http://ftp-master.debian.org/removals.txt", - description => "List of all the removals from Debian's archives", + title => $config->{title}, + link => $config->{link}, + description => $config->{description}, dc => { date => POSIX::strftime ("%FT%R+00:00",gmtime()), - subject => "Removals from Debian", - creator => 'tfheen@debian.org', - publisher => 'joerg@debian.org', - rights => 'Copyright 2005, Tollef Fog Heen', - language => 'en-us', + subject => $config->{subject}, + creator => $config->{creator}, + publisher => $config->{publisher}, + rights => $config->{rights}, + language => $config->{language}, }, syn => { updatePeriod => "hourly", @@ -55,7 +76,7 @@ $rss->channel( } ); -my $num_to_display = 16; +my $num_to_display = $config->{items}; for my $removal (@removals ) { my ($null, $date, $ftpmaster, $body, $reason); $removal =~ s/=========================================================================//g; @@ -70,7 +91,7 @@ for my $removal (@removals ) { chomp($link); $rss->add_item(title => "$reason", - link => "http://ftp-master.debian.org/removals.txt?" . $link, + link => $config->{link} . "?" . $link, description => qq[
$body
], dc => { creator => "$ftpmaster",