#!/usr/bin/perl
#
# oldbugs - Find bugs older than N days
# (C) 2004 Emanuele Rocca <ema@debian.org>
# Distributed under the GNU GPL License (see http://www.gnu.org/gpl)

use strict;
use Date::Manip;
use Net::LDAP;

exit print "Usage: oldbugs numdays \n"
	if (!$ARGV[0]);

my $server = "bugs.debian.org";
my $port = "10101";
my $base   = "dc=current,dc=bugs,dc=debian,dc=org";
my $attrs = [ "debbugsID", "debbugsDate", "debbugsPackage" ];
                                                                                                  
my $ldap = Net::LDAP->new($server, "port" => $port)
    or die "Can't create ldap object: $!";
$ldap->bind
    or die "Can't bind to LDAP on $server:$port: $!";

my ($year, $month, $day) = (DateCalc("today","- ".$ARGV[0]." days") =~  /(\w{4})(\w\w)(\w\w)/);
my $date=Date_SecsSince1970($month,$day,$year,00,00,00);

my $mesg = $ldap->search("base" => $base,
                         "filter" => "(debbugsDate<=$date)",
                         "attrs" => $attrs) or die;
                                                                                                  
$mesg->code and die $mesg->error;

foreach my $entry ($mesg->entries) {
	print "\n#".$entry->get_value("debbugsID")." "
		   .$entry->get_value("debbugsPackage")." - "
		   .&UnixDate(&ParseDateString("epoch ".$entry->get_value("debbugsDate")),"%g");
}
