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 )