public function download(Provider $provider, $version = 'stable')
{
$url = $provider->buildPackageDownloadUrl($version);
$downloader = new Downloader\UrlDownloader($this->logger, $this->options);
$basename = $provider->resolveDownloadFileName($version);
$distDir = Config::getDistFileDir();
$targetFilePath = $distDir . DIRECTORY_SEPARATOR . $basename;
$downloader->download($url, $targetFilePath);
$info = pathinfo($basename);
$currentPhpExtensionDirectory = Config::getBuildDir() . '/' . Config::getCurrentPhpName() . '/ext';
// tar -C ~/.phpbrew/build/php-5.5.8/ext -xvf ~/.phpbrew/distfiles/memcache-2.2.7.tgz
$extensionDir = $currentPhpExtensionDirectory . DIRECTORY_SEPARATOR . $provider->getPackageName();
if (!file_exists($extensionDir)) {
mkdir($extensionDir, 0755, true);
}
$this->logger->info("===> Extracting to {$currentPhpExtensionDirectory}...");
$cmds = array_merge($provider->extractPackageCommands($currentPhpExtensionDirectory, $targetFilePath), $provider->postExtractPackageCommands($currentPhpExtensionDirectory, $targetFilePath));
foreach ($cmds as $cmd) {
$this->logger->debug($cmd);
Utils::system($cmd);
}
return $extensionDir;
}