-- Perl 5.10.0 documentation --
CPANPLUS::Internals::Extract

NAME

CPANPLUS::Internals::Extract

SYNOPSIS

    ### for source files ###
    $self->_gunzip( file => 'foo.gz', output => 'blah.txt' );
    ### for modules/packages ###
    $dir = $self->_extract( module      => $modobj, 
                            extractdir  => '/some/where' );

DESCRIPTION

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

METHODS

$dir = _extract( module => $modobj, [perl => '/path/to/perl', extractdir => '/path/to/extract/to', prefer_bin => BOOL, verbose => BOOL, force => BOOL] )

_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:

  • module

    A CPANPLUS::Module object. This is required.

  • extractdir

    The directory to extract the archive to. By default this looks something like: /CPANPLUS_BASE/PERL_VERSION/BUILD/MODULE_NAME

  • prefer_bin

    A flag indicating whether you prefer a pure perl solution, ie Archive::Tar or Archive::Zip respectively, or a binary solution like unzip and tar .

  • perl

    The path to the perl executable to use for any perl calls. Also used to determine the build version directory for extraction.

  • verbose

    Specifies whether to be verbose or not. Defaults to your corresponding config entry.

  • force

    Specifies whether to force the extraction or not. Defaults to your corresponding config entry.

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.