#!/usr/bin/perl
use strict;
use warnings;

use Acme::Archive::Mbox;
use File::Find;
use File::Spec;

print "$0 archive.mbox dir/\n" and exit unless @ARGV >= 2;
my $archivename = shift @ARGV;
my @dirs = @ARGV;
my @files;
my $wanted = sub { push @files, $File::Find::name if -f; };

find($wanted, @dirs);

my $archive = Acme::Archive::Mbox->new();
for my $file (@files) {
    my $name = File::Spec->canonpath($file);
    if (File::Spec->file_name_is_absolute($name)) {
        my $root = File::Spec->rootdir();
        warn "Stripping leading $root";
        $name =~ s/^$root//;
    }

    die "BUG: $name is still absolute somehow" if File::Spec->file_name_is_absolute($name);

    print $name."\n";
    $archive->add_file($file, $name);
}

$archive->write($archivename);


=head1 NAME

mboxify - create an mbox archive

=head1 USAGE

mboxify archive.mbox [list_of_files_and_directories]

Pass one or more files or directories to be added to the created
archive.  Directories will be searched recursively.

=head1 VERSION

Version 0.01

=cut
