diff options
author | Tomas V.V.Cox <cox@php.net> | 2003-10-04 17:16:35 +0000 |
---|---|---|
committer | Tomas V.V.Cox <cox@php.net> | 2003-10-04 17:16:35 +0000 |
commit | 0c9f669cc5efaa5fd68640bc4a4c309e4d4f7449 (patch) | |
tree | 3434cb8f8e4394f22891f98a46d9323d7034fe3d | |
parent | 7630f962f103ebec235f29e61108cff59c700bca (diff) | |
download | php-git-0c9f669cc5efaa5fd68640bc4a4c309e4d4f7449.tar.gz |
Better fix #61
-rw-r--r-- | pear/PEAR/Installer.php | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/pear/PEAR/Installer.php b/pear/PEAR/Installer.php index 414010b10e..36fc9456da 100644 --- a/pear/PEAR/Installer.php +++ b/pear/PEAR/Installer.php @@ -725,9 +725,17 @@ class PEAR_Installer extends PEAR_Common $curver = $this->registry->packageInfo($pkgfile, 'version'); $remote = &new PEAR_Remote($config); $releases = $remote->call('package.info', $pkgfile, 'releases'); + if (!count($releases)) { + return $this->raiseError("No releases found for package '$pkgfile'"); + } $states = $this->betterStates($state, true); $possible = false; - foreach($releases as $ver => $inf) { + $_err_latest = false; + foreach ($releases as $ver => $inf) { + if (!$_err_latest) { + $_err_latest = "$pkgfile-$ver"; + $_err_latest_state = $inf['state']; + } if (in_array($inf['state'], $states)) { if (is_array($possible)) { if (version_compare(key($possible), $ver) < 0) { @@ -738,17 +746,17 @@ class PEAR_Installer extends PEAR_Common $possible = array($ver => $inf['state']); } } - } else { - return $this->raiseError('No release with state equal to: \'' . implode(', ', $states) . - "' found. The latest is $pkgfile-$ver ({$inf['state']}). Use " . - "'pear install $pkgfile-$ver' or set the 'preferred_state' ". - "to '{$inf['state']}' for installing this package."); } } if ($possible) { $pkgfile = $this->_downloadFile($pkgfile, $config, $options, $errors, key($possible), $origpkgfile, $state); + } else { + return $this->raiseError('No release with state equal to: \'' . implode(', ', $states) . + "' found. The latest is $_err_latest ($_err_latest_state). Use " . + "'pear install $_err_latest' or set the 'preferred_state' ". + "to '$_err_latest_state' for installing this package."); } } else { $pkgfile = $this->_downloadFile($pkgfile, $config, $options, |