#!/usr/bin/perl

# Copyright 2004 Frank Lichtenheld

use strict;
use warnings;

use CGI;
#use CGI::Carp qw(fatalsToBrowser);

my $CVS_ID = '$Id: delayed.pl,v 1.4 2004/07/11 23:12:06 djpig Exp $';

my $delayed_dir = "/org/delayed.debian.org/DELAYED";
my $MAX_DAYS = 15;

my %files = ();

foreach (0 .. $MAX_DAYS) {
    $files{$_} = [];
}

foreach my $day (0 .. $MAX_DAYS) {
    opendir DIR, "$delayed_dir/${day}-day/" or die "Couldn't open dir: $!";
    while (my $file = readdir DIR) {
	chomp $file;
	next if $file =~ /^\.\.?/;
	next if $file =~ /\.upload$/;
	if ($file =~ /\.changes$/) {
	    my $file_link = "<a href=\"delayed/$file\">$file</a>";
	    my $bugs = `grep ^Closes: $delayed_dir/${day}-day/$file | perl -pe 's/Closes: //;'` || "";
	    chomp($bugs);
	    if ($bugs) {
		my @bugs = split /\s+/, $bugs;
		foreach (@bugs) {
		    $_ = "<a href=\"http://bugs.debian.org/$_\">#$_</a>";
		}
		$bugs = join ', ', @bugs;
		$file_link .= " (Closes: $bugs)";
	    }
	    push @{$files{$day}}, $file_link;
	}
    }
    close DIR;
}

my $cgi = new CGI;

open OUT, ">", "/home/djpig/public_html/delayed.html";

#print OUT $cgi->header;
print OUT $cgi->start_html("DELAYED Queue");
print OUT $cgi->h1("DELAYED Queue");
print OUT $cgi->p( $cgi->a( { -href=> "http://lists.debian.org/debian-devel/2004/debian-devel-200402/msg00887.html" }, "Announcement" ). " of the DELAYED queue on the debian-devel mailing list." );

foreach my $day (0 .. $MAX_DAYS) {
    print OUT $cgi->h2("${day}-day/");
    print OUT $cgi->ul($cgi->li( [ sort @{$files{$day}} ] ) );
}

print OUT $cgi->hr;

print OUT $cgi->address( "generated by <a href=\"delayed.pl\">delayed.pl</a>, written by Frank Lichtenheld<br />$CVS_ID<br />data last updated: ".gmtime()." UTC" );

print OUT $cgi->end_html;
