Tar - module for manipulation of tar archives. |
Tar - module for manipulation of tar archives.
use Archive::Tar;
$tar = Archive::Tar->new(); $tar->read("origin.tar.gz",1); $tar->add_files("file/foo.c", "file/bar.c"); $tar->add_data("file/baz.c","This is the file contents"); $tar->write("files.tar");
This is a module for the handling of tar archives.
At the moment these methods are implemented:
new()
add_files(@filenamelist)
add_data($filename,$data,$opthashref)
$filename
and content $data
. Specific options
can be set using $opthashref
, which will be documented later.
remove(@filenamelist)
eq
.
read('file.tar',$compressed)
$tar
!
write('file.tar',$compressed)
data()
extract(@filenames)
@filenames
to disk, creating subdirectories as neccesary. This
might not work too well under VMS and MacOS.
list_files()
get_content($file)
replace_content($file,$content)
Arrange to chmod()
at the very end in case it makes the file readonly.
Win32 is actually picky about that.
SunOS 4.x tar makes tarfiles that contain directory entries that don't have typeflag set properly. We use the trailing slash to recognize directories in such tarfiles.
Fixed two bugs with symlink handling, reported in excellent detail by an admin at teleport.com called Chris.
Primive tar program (called ptar) included with distribution. Useage should be pretty obvious if you've used a normal tar program.
Added methods get_content and replace_content.
Added support for paths longer than 100 characters, according to POSIX. This is compatible with just about everything except GNU tar. Way to go, GNU tar (use a better tar, or GNU cpio).
NOTE: When adding files to an archive, files with basenames longer than 100 characters will be silently ignored. If the prefix part of a path is longer than 155 characters, only the last 155 characters will be stored.
list_files()
method, as requested by Michael Wiedman.
Fixed a couple of dysfunctions when run under Windows NT. Michael Wiedmann reported the bugs.
Changed the documentation to reflect reality a bit better.
Fixed bug in format_tar_entry. Bug reported by Michael Schilli.
use strict;
stop complaining under
perl version 5.003.
Ties to the Compress::Zlib manpage put in. Will warn if it isn't available.
$tar->write()
with no argument now returns the formatted archive.
Protected the calls to readlink()
and symlink(). AFAIK this module
should now run just fine on Windows NT.
Add method to write a single entry to disk (extract)
Added method to add entries entirely from scratch (add_data)
Changed name of add()
to add_file()
All calls to croak()
removed and replaced with returning undef and
setting Tar::error.
Better handling of tarfiles with garbage at the end.
Tar - module for manipulation of tar archives. |