Re: Script for Mutt to query db.debian.org
Ok, one last try. This one adds uid's to the search.
--
-----------=======-=-======-=========-----------=====------------=-=------
/ Ben Collins -- ...on that fantastic voyage... -- Debian GNU/Linux \
` bcollins@debian.org -- bcollins@openldap.org -- bcollins@linux.com '
`---=========------=======-------------=-=-----=-===-======-------=--=---'
#!/usr/bin/perl
$|=1;
use Net::LDAP;
my $server = "db.debian.org";
my $base = "ou=users, dc=debian, dc=org";
my $port = 389;
die print "Usage: $0 <name> [<name> ...]\n" if ! $ARGV[0];
my @attrs = qw(sn cn ircnick uid);
my @results;
my $ldap = Net::LDAP->new($server, port => $port) or
die "Could not contact LDAP server $server:$port";
$ldap->bind or die "Could not bind";
foreach my $search (@ARGV) {
my $query = join '', map { "($_=*$search*)" } @attrs;
my $mesg = $ldap->search (
base => "$base",
filter => "(|$query)"
) || die "Failed search";
foreach my $entry ($mesg->entries) {
my @uid = $entry->get('uid');
next if !defined(@uid) || $uid[0] eq '';
my @fname = $entry->get('cn');
my @lname = $entry->get('sn');
my @nick = $entry->get('ircnick');
push @results, "<$uid[0]\@debian.org>\t$fname[0] $lname[0]\t($nick[0])\n";
}
}
$ldap->unbind;
print "LDAP query: found ", scalar(@results), "\n", @results;
exit 1 if ! @results;
Reply to: