Container-Builder
view release on metacpan or search on metacpan
lib/Container/Builder.pm view on Meta::CPAN
$prefix_path .= '/';
}
my $iterator = Path::Class::Iterator->new(root => $local_dirpath, follow_symlinks => 0, follow_hidden => 0);
my $tar = Container::Builder::Tar->new();
$tar->add_dir($prefix_path, $mode, $user, $group);
until($iterator->done) {
my $item = $iterator->next;
if($item->is_dir()) {
my $remote_dir = $prefix_path . substr($item, length($local_dirpath));
my $mode = (stat($item))[2] & 07777;
$tar->add_dir($remote_dir, $mode, $user, $group);
} else {
my $remote_file = $prefix_path . substr($item, length($local_dirpath));
my $mode = (stat($item))[2] & 07777;
local $/ = undef;
open(my $file, '<', $item) or die "cannot open file $item for reading\n";
my $data = <$file>;
$tar->add_file($remote_file, $data, $mode, $user, $group);
}
}
push @layers, Container::Builder::Layer::Tar->new(comment => $local_dirpath, data => $tar->get_tar());
}
# Create a layer that creates a directory in the container
( run in 0.736 second using v1.01-cache-2.11-cpan-39bf76dae61 )