Fixes in PEAR support
parent
f572bbb0bf
commit
4b5abaf44f
|
@ -21,7 +21,10 @@ class PearDownloader extends FileDownloader
|
||||||
{
|
{
|
||||||
protected function extract($file, $path)
|
protected function extract($file, $path)
|
||||||
{
|
{
|
||||||
system(sprintf('tar -zxf %s', escapeshellarg($file)));
|
$oldDir = getcwd();
|
||||||
|
chdir(dirname($file));
|
||||||
|
system(sprintf('tar -zxf %s', escapeshellarg(basename($file))));
|
||||||
|
chdir($oldDir);
|
||||||
@unlink($path . '/package.sig');
|
@unlink($path . '/package.sig');
|
||||||
@unlink($path . '/package.xml');
|
@unlink($path . '/package.xml');
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,14 @@ class PearRepository extends ArrayRepository
|
||||||
$packageLink = $package->getAttribute('xlink:href');
|
$packageLink = $package->getAttribute('xlink:href');
|
||||||
$releaseLink = $this->url . str_replace("/rest/p/", "/rest/r/", $packageLink);
|
$releaseLink = $this->url . str_replace("/rest/p/", "/rest/r/", $packageLink);
|
||||||
$allReleasesLink = $releaseLink . "/allreleases2.xml";
|
$allReleasesLink = $releaseLink . "/allreleases2.xml";
|
||||||
|
|
||||||
|
try {
|
||||||
$releasesXML = $this->requestXml($allReleasesLink);
|
$releasesXML = $this->requestXml($allReleasesLink);
|
||||||
|
} catch (\ErrorException $e) {
|
||||||
|
if (strpos($e->getMessage(), '404')) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$releases = $releasesXML->getElementsByTagName('r');
|
$releases = $releasesXML->getElementsByTagName('r');
|
||||||
|
|
||||||
|
@ -79,7 +86,14 @@ class PearRepository extends ArrayRepository
|
||||||
'version' => $pearVersion,
|
'version' => $pearVersion,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
try {
|
||||||
$deps = file_get_contents($releaseLink . "/deps.".$pearVersion.".txt");
|
$deps = file_get_contents($releaseLink . "/deps.".$pearVersion.".txt");
|
||||||
|
} catch (\ErrorException $e) {
|
||||||
|
if (strpos($e->getMessage(), '404')) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (preg_match('((O:([0-9])+:"([^"]+)"))', $deps, $matches)) {
|
if (preg_match('((O:([0-9])+:"([^"]+)"))', $deps, $matches)) {
|
||||||
if (strlen($matches[3]) == $matches[2]) {
|
if (strlen($matches[3]) == $matches[2]) {
|
||||||
throw new \InvalidArgumentException("Invalid dependency data, it contains serialized objects.");
|
throw new \InvalidArgumentException("Invalid dependency data, it contains serialized objects.");
|
||||||
|
@ -102,7 +116,11 @@ class PearRepository extends ArrayRepository
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
$this->addPackage($loader->load($packageData));
|
$this->addPackage($loader->load($packageData));
|
||||||
|
} catch (\UnexpectedValueException $e) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue