| // +----------------------------------------------------------------------+ // // $Id$ require_once "PEAR/Command/Common.php"; require_once "PEAR/Installer.php"; /** * PEAR commands for installation or deinstallation/upgrading of * packages. * */ class PEAR_Command_Install extends PEAR_Command_Common { // {{{ properties // }}} // {{{ constructor /** * PEAR_Command_Install constructor. * * @access public */ function PEAR_Command_Install(&$ui, &$config) { parent::PEAR_Command_Common($ui, $config); } // }}} // {{{ getCommands() /** * Return a list of all the commands defined by this class. * @return array list of commands * @access public */ function getCommands() { return array('install', 'uninstall', 'upgrade'); } // }}} // {{{ run() function run($command, $params) { $installer =& new PEAR_Installer($this->config->get('php_dir'), $this->config->get('ext_dir'), $this->config->get('doc_dir')); $installer->debug = $this->config->get('verbose'); $failmsg = ''; $options = array(); switch ($command) { case 'install': case 'upgrade': { if ($command == 'upgrade') { $options['upgrade'] = true; } // The ['force'] and ['nodeps'] options are still missing if ($installer->install($params[0], $options, $this->config)) { $this->ui->displayLine("install ok"); } else { $failmsg = "install failed"; } break; } case 'uninstall': { if ($installer->uninstall($params[0], $options)) { $this->ui->displayLine("uninstall ok"); } else { $failmsg = "uninstall failed"; } break; } default: { return false; } } if ($failmsg) { return $this->raiseError($failmsg); } return true; } // }}} } ?>