| This is a routine I've used in the past to add files to an
Archive::Tar object (in the process of creating a tar archive).
My objective was to get relative paths in the archive, rather
than paths from the root.
Usage:
my $tar = Archive::Tar->new;
add_to_tar($tar, $thing_to_add, $base_dir);
$tar->write($gz, 9);
$thing_to_add can be either a file or a directory.
$base_dir is the key to relative paths. For example, say I had a
directory directory '/foo/bar', and in that directory is another
directory 'baz'. I can do something like this:
add_to_tar($tar, 'baz', '/foo/bar');
Alternatively, the second directory could contain the full path:
add_to_tar($tar, '/foo/bar/baz', '/foo/bar');
Hope this is useful.
|