/** * Initialize an object wrapper for a Subversion subcommand. * * @return mixed object on success, false on failure * @access public */ function init($command, $options) { // Check for shortcuts for commands $shortcuts = VersionControl_SVN::fetchShortcuts(); if (isset($options['shortcuts']) && is_array($options['shortcuts'])) { foreach ($options['shortcuts'] as $key => $val) { $shortcuts[strtolower($key)] = $val; } } $cmd = isset($shortcuts[strtolower($command)]) ? $shortcuts[strtolower($command)] : $command; $lowercmd = strtolower($cmd); $cmd = ucfirst($lowercmd); $class = 'VersionControl_SVN_' . $cmd; if (include_once realpath(dirname(__FILE__)) . "/SVN/{$cmd}.php") { if (class_exists($class)) { $obj =& new $class(); $obj->options = $options; $obj->_svn_cmd = $lowercmd; $obj->_stack =& PEAR_ErrorStack::singleton('VersionControl_SVN'); $obj->_stack->setErrorMessageTemplate(VersionControl_SVN::declareErrorMessages()); $obj->setOptions($options); return $obj; } } PEAR_ErrorStack::staticPush('VersionControl_SVN', VERSIONCONTROL_SVN_ERROR_UNKNOWN_CMD, 'error', array('command' => $command, 'options' => $options)); return false; }