1
0
mirror of https://github.com/php/php-src.git synced 2026-04-26 09:28:21 +02:00

extract only the package.xml file instead of all files

This commit is contained in:
Tomas V.V.Cox
2001-09-29 00:38:24 +00:00
parent cf1e1e0ddd
commit e3e28c8f59
+4 -14
View File
@@ -377,27 +377,17 @@ class PEAR_Common extends PEAR
if (!@is_file($file)) {
return $this->raiseError('no tar file supplied');
}
$tar = new Archive_Tar($file, true);
// XXX Fixme Windows
$tmpdir = '/tmp' . DIRECTORY_SEPARATOR . $file;
if (file_exists($tmpdir)) {
return $this->raiseError('Tmpdir: ' . $tmpdir .' already exists',
null, PEAR_ERROR_TRIGGER, E_USER_ERROR);
}
if (!mkdir($tmpdir, 0755)) {
return $this->raiseError("Unable to create temporary directory $tmpdir.",
null, PEAR_ERROR_TRIGGER, E_USER_ERROR);
}
$tar->extract($tmpdir);
// Assume the decompressed dir name
if (($pos = strrpos($file, '.')) === false) {
return $this->raiseError('file doesn\'t follow the package name convention');
}
$pkgdir = substr($file, 0, $pos);
$xml = $pkgdir . DIRECTORY_SEPARATOR . 'package.xml';
$xml = $tmpdir . DIRECTORY_SEPARATOR . $pkgdir . DIRECTORY_SEPARATOR .'package.xml';
$tar = new Archive_Tar($file, true);
$tar->extractList($xml);
$info = $this->infoFromDescriptionFile($xml);
system("rm -rf $tmpdir"); // XXX FIXME Windows
unlink($xml);
return $info;
}
}