| // +----------------------------------------------------------------------+ // // $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, $options, $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 = ''; $opts = array(); switch ($command) { case 'upgrade': $opts['upgrade'] = true; // fall through case 'install': { if (isset($options['f'])) { $opts['force'] = true; } // XXX The ['nodeps'] option is still missing if ($installer->install(@$params[0], $opts, $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; } // }}} function getOptions() { return array('f'); } } ?>