CPANPLUS::Internals::Extract - internals for archive extraction |
CPANPLUS::Internals::Extract - internals for archive extraction
### for source files ### $self->_gunzip( file => 'foo.gz', output => 'blah.txt' );
### for modules/packages ### $dir = $self->_extract( module => $modobj, extractdir => '/some/where' );
CPANPLUS::Internals::Extract extracts compressed files for CPANPLUS.
It can do this by either a pure perl solution (preferred) with the
use of Archive::Tar
and Compress::Zlib
, or with binaries, like
gzip
and tar
.
The flow looks like this:
$cb->_extract Delegate to Archive::Extract
_extract
will take a module object and extract it to extractdir
if provided, or the default location which is obtained from your
config.
The file name is obtained by looking at $modobj->status->fetch
and will be parsed to see if it's a tar or zip archive.
If it's a zip archive, __unzip
will be called, otherwise __untar
will be called. In the unlikely event the file is of neither format,
an error will be thrown.
_extract
takes the following options:
CPANPLUS::Module
object. This is required.
Archive::Tar
or Archive::Zip
respectively, or a binary solution
like unzip
and tar
.
All other options are passed on verbatim to __unzip
or __untar
.
Returns the directory the file was extracted to on success and false on failure.
CPANPLUS::Internals::Extract - internals for archive extraction |