public function knownReleases(Provider $provider)
{
$url = $provider->buildKnownReleasesUrl();
if (extension_loaded('curl')) {
$curlVersionInfo = curl_version();
$curlOptions = array(CURLOPT_USERAGENT => 'curl/' . $curlVersionInfo['version']);
$downloader = new CurlDownloader();
$downloader->setProgressHandler(new ProgressBar());
$console = Console::getInstance();
if (!$console->options->{'no-progress'}) {
$downloader->setProgressHandler(new ProgressBar());
}
if ($this->options) {
if ($proxy = $this->options->{'http-proxy'}) {
$downloader->setProxy($proxy);
}
if ($proxyAuth = $this->options->{'http-proxy-auth'}) {
$downloader->setProxyAuth($proxyAuth);
}
}
$info = $downloader->request($url, array(), $curlOptions);
} else {
$info = file_get_contents($url);
}
return $provider->parseKnownReleasesResponse($info);
}