Acme-Archive-Mbox

 view release on metacpan or  search on metacpan

bin/mboxextract  view on Meta::CPAN

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

use Acme::Archive::Mbox;
use File::Spec;
use File::Slurp;
use File::Path qw(mkpath);

print "$0 archive.mbox dir/\n" and exit unless @ARGV == 2;
my $archivename = shift @ARGV;
my $rootdir = shift @ARGV;

my $archive = Acme::Archive::Mbox->new();
$archive->read($archivename);
for my $file ($archive->get_files()) {
    my $name = File::Spec->canonpath($file->name());
    die "Absolute path, refusing to extract: $name\n" if (File::Spec->file_name_is_absolute($name));

    my (undef, $dirs, $filename) = File::Spec->splitpath($name);

bin/mboxify  view on Meta::CPAN

#!/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



( run in 0.579 second using v1.01-cache-2.11-cpan-de7293f3b23 )