/**
  * Rebuild the dependency DB by reading registry entries.
  * @return true|PEAR_Error
  */
 function rebuildDB()
 {
     $depdb = array('_version' => $this->_version);
     if (!$this->hasWriteAccess()) {
         // allow startup for read-only with older Registry
         return $depdb;
     }
     $packages = $this->_registry->listAllPackages();
     if (PEAR::isError($packages)) {
         return $packages;
     }
     foreach ($packages as $channel => $ps) {
         foreach ($ps as $package) {
             $package = $this->_registry->getPackage($package, $channel);
             if (PEAR::isError($package)) {
                 return $package;
             }
             $this->_setPackageDeps($depdb, $package);
         }
     }
     $error = $this->_writeDepDB($depdb);
     if (PEAR::isError($error)) {
         return $error;
     }
     $this->_cache = $depdb;
     return true;
 }
Exemplo n.º 2
0
 /**
  * @param PEAR_Frontend_*
  * @param array
  * @param PEAR_Config
  */
 function PEAR_Downloader(&$ui, $options, &$config)
 {
     parent::PEAR_Common();
     $this->_options = $options;
     $this->config =& $config;
     $this->_preferredState = $this->config->get('preferred_state');
     $this->ui =& $ui;
     if (!$this->_preferredState) {
         // don't inadvertantly use a non-set preferred_state
         $this->_preferredState = null;
     }
     if (isset($this->_options['installroot'])) {
         $this->config->setInstallRoot($this->_options['installroot']);
     }
     $this->_registry =& $config->getRegistry();
     if (isset($this->_options['alldeps']) || isset($this->_options['onlyreqdeps'])) {
         $this->_installed = $this->_registry->listAllPackages();
         foreach ($this->_installed as $key => $unused) {
             if (!count($unused)) {
                 continue;
             }
             $strtolower = create_function('$a', 'return strtolower($a);');
             array_walk($this->_installed[$key], $strtolower);
         }
     }
 }
Exemplo n.º 3
0
 /**
  * Rebuild the dependency DB by reading registry entries.
  * @return true|PEAR_Error
  */
 function rebuildDB()
 {
     $depdb = array('_version' => $this->_version);
     $packages = $this->_registry->listAllPackages();
     foreach ($packages as $channel => $ps) {
         foreach ($ps as $package) {
             $package = $this->_registry->getPackage($package, $channel);
             $this->_setPackageDeps($depdb, $package);
         }
     }
     $error = $this->_writeDepDB($depdb);
     if (PEAR::isError($error)) {
         return $error;
     }
     $this->_cache = $depdb;
     return true;
 }