Esempio n. 1
0
 function _analyzeBundledPackages()
 {
     if (!$this->_isValid) {
         return false;
     }
     if (!$this->_pf->getPackageType() == 'bundle') {
         return false;
     }
     if (!isset($this->_pf->_packageFile)) {
         return false;
     }
     $dir_prefix = dirname($this->_pf->_packageFile);
     $common = new PEAR_Common();
     $log = isset($this->_pf->_logger) ? array(&$this->_pf->_logger, 'log') : array($common, 'log');
     $info = $this->_pf->getContents();
     $info = $info['bundledpackage'];
     if (!is_array($info)) {
         $info = array($info);
     }
     $pkg =& new PEAR_PackageFile($this->_pf->_config);
     foreach ($info as $package) {
         if (!file_exists($dir_prefix . DIRECTORY_SEPARATOR . $package)) {
             $this->_fileNotFound($dir_prefix . DIRECTORY_SEPARATOR . $package);
             $this->_isValid = 0;
             continue;
         }
         call_user_func_array($log, array(1, "Analyzing bundled package {$package}"));
         PEAR::pushErrorHandling(PEAR_ERROR_RETURN);
         $ret = $pkg->fromAnyFile($dir_prefix . DIRECTORY_SEPARATOR . $package, PEAR_VALIDATE_NORMAL);
         PEAR::popErrorHandling();
         if (PEAR::isError($ret)) {
             call_user_func_array($log, array(0, "ERROR: package {$package} is not a valid " . 'package'));
             $inf = $ret->getUserInfo();
             if (is_array($inf)) {
                 foreach ($inf as $err) {
                     call_user_func_array($log, array(1, $err['message']));
                 }
             }
             return false;
         }
     }
     return true;
 }