From f5ac5b9b3e862cb350912cd43dcecde481fc39ed Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 18 Jan 2012 16:37:55 +0100 Subject: [PATCH] Fix ZipDownloader, fixes #221 --- src/Composer/Downloader/ZipDownloader.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Composer/Downloader/ZipDownloader.php b/src/Composer/Downloader/ZipDownloader.php index d89417c4f..935e3f0b9 100644 --- a/src/Composer/Downloader/ZipDownloader.php +++ b/src/Composer/Downloader/ZipDownloader.php @@ -13,21 +13,27 @@ namespace Composer\Downloader; use Composer\Package\PackageInterface; -use Composer\Util\Process; +use Composer\Util\ProcessExecutor; /** * @author Jordi Boggiano */ class ZipDownloader extends FileDownloader { + protected $process; + + public function __construct(ProcessExecutor $process = null) + { + $this->process = $process ?: new ProcessExecutor; + } + protected function extract($file, $path) { if (!class_exists('ZipArchive')) { // try to use unzip on *nix if (!defined('PHP_WINDOWS_VERSION_BUILD')) { - $process = new Process('unzip '.escapeshellarg($file).' -d '.escapeshellarg($path)); - $process->run(); - if ($process->isSuccessful()) { + $result = $this->process->execute('unzip '.escapeshellarg($file).' -d '.escapeshellarg($path)); + if (0 == $result) { return; } }