### CMail::In::maildir
# module for checking for messages in maildir mailboxes
package CMail::In::maildir;
use strict;
BEGIN {
use CMail::In::Base;
use vars qw($VERSION @ISA);
$VERSION = do { my @r = (q$Revision: 1.3 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
@ISA = qw( CMail::In::Base );
}
# methods
sub count {
my $self = shift;
my $basedir = $self->parse_uri;
$basedir =~ s/\/$//; # get rid of trailing slash
my $new = $self->check_maildir("$basedir/new");
my $old = $self->check_maildir("$basedir/cur");
my $total = $new + $old;
return($total,$new);
}
# internal methods
sub check_maildir {
my $self = shift;
my $dir = shift;
my $verbose = $self->{verbose};
my $count = 0;
warn "maildir: Opening '$dir' and counting messages.\n" if $verbose;
opendir(DIR, $dir) or die "Can't opendir $dir: $!\n";
grep { /^[^.]/ && $count++ } readdir(DIR);
closedir DIR;
return $count;
}
1;
syntax highlighted by Code2HTML, v. 0.9.1