Ejemplo n.º 1
0
 /**
  * @param array
  * @param bool
  * @access private
  */
 function _convertDependencies2_0(&$release, $internal = false)
 {
     $peardep = array('pearinstaller' => array('min' => '1.4.0b1'));
     // this is a lot safer
     $required = $optional = array();
     $release['dependencies'] = array();
     if ($this->_packagefile->hasDeps()) {
         foreach ($this->_packagefile->getDeps() as $dep) {
             if (!isset($dep['optional']) || $dep['optional'] == 'no') {
                 $required[] = $dep;
             } else {
                 $optional[] = $dep;
             }
         }
         foreach (array('required', 'optional') as $arr) {
             $deps = array();
             foreach (${$arr} as $dep) {
                 // organize deps by dependency type and name
                 if (!isset($deps[$dep['type']])) {
                     $deps[$dep['type']] = array();
                 }
                 if (isset($dep['name'])) {
                     $deps[$dep['type']][$dep['name']][] = $dep;
                 } else {
                     $deps[$dep['type']][] = $dep;
                 }
             }
             do {
                 if (isset($deps['php'])) {
                     $php = array();
                     if (count($deps['php']) > 1) {
                         $php = $this->_processPhpDeps($deps['php']);
                     } else {
                         if (!isset($deps['php'][0])) {
                             list($key, $blah) = each($deps['php']);
                             // stupid buggy versions
                             $deps['php'] = array($blah[0]);
                         }
                         $php = $this->_processDep($deps['php'][0]);
                         if (!$php) {
                             break;
                             // poor mans throw
                         }
                     }
                     $release['dependencies'][$arr]['php'] = $php;
                 }
             } while (false);
             do {
                 if (isset($deps['pkg'])) {
                     $pkg = array();
                     $pkg = $this->_processMultipleDepsName($deps['pkg']);
                     if (!$pkg) {
                         break;
                         // poor mans throw
                     }
                     $release['dependencies'][$arr]['package'] = $pkg;
                 }
             } while (false);
             do {
                 if (isset($deps['ext'])) {
                     $pkg = array();
                     $pkg = $this->_processMultipleDepsName($deps['ext']);
                     $release['dependencies'][$arr]['extension'] = $pkg;
                 }
             } while (false);
             // skip sapi - it's not supported so nobody will have used it
             // skip os - it's not supported in 1.0
         }
     }
     if (isset($release['dependencies']['required'])) {
         $release['dependencies']['required'] = array_merge($peardep, $release['dependencies']['required']);
     } else {
         $release['dependencies']['required'] = $peardep;
     }
     if (!isset($release['dependencies']['required']['php'])) {
         $release['dependencies']['required']['php'] = array('min' => '4.0.0');
     }
     $order = array();
     $bewm = $release['dependencies']['required'];
     $order['php'] = $bewm['php'];
     $order['pearinstaller'] = $bewm['pearinstaller'];
     isset($bewm['package']) ? $order['package'] = $bewm['package'] : 0;
     isset($bewm['extension']) ? $order['extension'] = $bewm['extension'] : 0;
     $release['dependencies']['required'] = $order;
 }