The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Email::FolderType::Local;
# $Id: $
use strict;

use vars qw[$VERSION];
$VERSION = (qw$Revision: 0.1 $)[1];

use Email::FolderType::Register qw[register_type];

=head1 NAME

Email::FolderType::Local - Recognize folder types on the local file system.

=head1 SYNOPSIS

  use Email::FolderType qw[folder_type];

  my $type = folder_type($folder) || 'unknown';
  print "$folder is type $type.\n";

=head2 DESCRIPTION

Registers several mail folder types that would be found on the local filesystem.

=head2 Mbox

  print 'Mbox' if folder_type('mboxmail') eq 'Mbox';

Returns this folder type for pretty much anything. Because of this, Mbox
is registered first so it will be the very last type tested.

=head2 Ezmlm

  print 'Ezmlm' if folder_type('mail//') eq 'Ezmlm';

Returns this folder type if the folder ends in C<//>, or if the folder
contains a directory named C<archive>.

=head2 Maildir

  print 'Maildir' if folder_type('mail/') eq 'Maildir';

Returns this folder type if the folder name ends in C</>, or if the
folder contains a directory named C<cur>.

=head2 MH

  print 'MH' if folder_type('mail/.') eq 'MH';

returns this folder type if the folder name ends in C</.>.

=cut

register_type Mbox    => sub { 'Mbox' };
register_type Ezmlm   => sub { -d join '/', shift, 'archive' };
register_type Maildir => sub { -d join '/', shift, 'cur' };
register_type MH      => sub { shift =~ m[/\.$] };
register_type Maildir => sub { shift =~ m[/$] };
register_type Ezmlm   => sub { shift =~ m[//$] };

1;

__END__

=head1 SEE ALSO

L<Email::FolderType>.

=head1 AUTHOR

Casey West <F<casey@geeknest.com>>.

=head1 COPYRIGHT

  Copyright (c) 2004 Casey West.  All rights reserved.
  This module is free software; you can redistribute it and/or modify it
  under the same terms as Perl itself.

=cut