Sha256: 96bdc82c740a96be646e5b931c16ae88f9f6838ea73f92421896881157bb79d0

Contents?: true

Size: 1.67 KB

Versions: 42

Compression:

Stored size: 1.67 KB

Contents

<?php

/*
 * This file is part of Composer.
 *
 * (c) Nils Adermann <naderman@naderman.de>
 *     Jordi Boggiano <j.boggiano@seld.be>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Composer\Downloader;

use Composer\Config;
use Composer\Cache;
use Composer\EventDispatcher\EventDispatcher;
use Composer\Package\PackageInterface;
use Composer\Util\ProcessExecutor;
use Composer\Util\RemoteFilesystem;
use Composer\IO\IOInterface;

/**
 * Xz archive downloader.
 *
 * @author Pavel Puchkin <i@neoascetic.me>
 * @author Pierre Rudloff <contact@rudloff.pro>
 */
class XzDownloader extends ArchiveDownloader
{
    protected $process;

    public function __construct(IOInterface $io, Config $config, EventDispatcher $eventDispatcher = null, Cache $cache = null, ProcessExecutor $process = null, RemoteFilesystem $rfs = null)
    {
        $this->process = $process ?: new ProcessExecutor($io);

        parent::__construct($io, $config, $eventDispatcher, $cache, $rfs);
    }

    protected function extract($file, $path)
    {
        $command = 'tar -xJf ' . ProcessExecutor::escape($file) . ' -C ' . ProcessExecutor::escape($path);

        if (0 === $this->process->execute($command, $ignoredOutput)) {
            return;
        }

        $processError = 'Failed to execute ' . $command . "\n\n" . $this->process->getErrorOutput();

        throw new \RuntimeException($processError);
    }

    /**
     * {@inheritdoc}
     */
    protected function getFileName(PackageInterface $package, $path)
    {
        return $path.'/'.pathinfo(parse_url($package->getDistUrl(), PHP_URL_PATH), PATHINFO_BASENAME);
    }
}

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
dependabot-composer-0.119.0.beta1 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.113.19 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.112.1 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.111.57 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.111.56 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.111.52 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.111.50 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.111.25 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.111.17 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.111.15 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.110.13 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.108.11 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.108.8 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.107.47 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.107.39 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.107.36 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.107.28 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.107.14 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.106.12 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php
dependabot-composer-0.106.11 helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php