files that are not installed should be removed from the

registered file list (TODO--)
This commit is contained in:
Tomas V.V.Cox 2002-05-21 09:19:46 +00:00
parent d8d42fcc59
commit 743ad31884

View file

@ -23,10 +23,6 @@ require_once 'PEAR/Common.php';
require_once 'PEAR/Registry.php'; require_once 'PEAR/Registry.php';
require_once 'PEAR/Dependency.php'; require_once 'PEAR/Dependency.php';
// TODO:
// * files that are not installed should be removed from the
// registered file list.
/** /**
* Administration class used to install PEAR packages and maintain the * Administration class used to install PEAR packages and maintain the
* installed package database. * installed package database.
@ -427,7 +423,7 @@ class PEAR_Installer extends PEAR_Common
// Copy files to dest dir --------------------------------------- // Copy files to dest dir ---------------------------------------
// info from the package it self we want to access from _installFile // info from the package it self we want to access from _installFile
$this->pkginfo = $pkginfo; $this->pkginfo = &$pkginfo;
if (empty($options['register-only'])) { if (empty($options['register-only'])) {
if (!is_dir($this->config->get('php_dir'))) { if (!is_dir($this->config->get('php_dir'))) {
return $this->raiseError("no script destination directory\n", return $this->raiseError("no script destination directory\n",
@ -450,8 +446,13 @@ class PEAR_Installer extends PEAR_Common
foreach ($pkginfo['filelist'] as $file => $atts) { foreach ($pkginfo['filelist'] as $file => $atts) {
$res = $this->_installFile($file, $atts, $tmp_path); $res = $this->_installFile($file, $atts, $tmp_path);
if (!$res && empty($options['force'])) { if (!$res) {
return null; // If file can't be installed and 'force' is not set, abort
if (empty($options['force'])) {
return null;
}
// Do not register not installed files
unset($pkginfo['filelist'][$file]);
} }
} }
} }
@ -462,9 +463,9 @@ class PEAR_Installer extends PEAR_Common
if (!empty($options['force']) && $this->registry->packageExists($pkgname)) { if (!empty($options['force']) && $this->registry->packageExists($pkgname)) {
$this->registry->deletePackage($pkgname); $this->registry->deletePackage($pkgname);
} }
$ret = $this->registry->addPackage($pkgname, $this->pkginfo); $ret = $this->registry->addPackage($pkgname, $pkginfo);
} else { } else {
$ret = $this->registry->updatePackage($pkgname, $this->pkginfo, false); $ret = $this->registry->updatePackage($pkgname, $pkginfo, false);
} }
if (!$ret) { if (!$ret) {
return null; return null;