forked from kevinowino869/mitrobill
update PEAR
This commit is contained in:
@ -59,6 +59,7 @@ class CommandLine
|
||||
* Error messages.
|
||||
*
|
||||
* @var array $errors Error messages
|
||||
*
|
||||
* @todo move this to PEAR2\Console\CommandLine\MessageProvider
|
||||
*/
|
||||
public static $errors = array(
|
||||
@ -130,7 +131,7 @@ class CommandLine
|
||||
/**
|
||||
* The command line parser renderer instance.
|
||||
*
|
||||
* @var object that implements PEAR2\Console\CommandLine\Renderer interface
|
||||
* @var PEAR2\Console\CommandLine\Renderer a renderer
|
||||
*/
|
||||
public $renderer = false;
|
||||
|
||||
@ -144,7 +145,7 @@ class CommandLine
|
||||
/**
|
||||
* The command line message provider instance.
|
||||
*
|
||||
* @var PEAR2\Console\CommandLine\MessageProvider A message provider instance
|
||||
* @var PEAR2\Console\CommandLine\MessageProvider A message provider
|
||||
*/
|
||||
public $message_provider = false;
|
||||
|
||||
@ -191,6 +192,7 @@ class CommandLine
|
||||
* convenience.
|
||||
*
|
||||
* @var PEAR2\Console\CommandLine The parent instance
|
||||
*
|
||||
* @todo move CommandLine::parent to CommandLine\Command
|
||||
*/
|
||||
public $parent = false;
|
||||
@ -272,7 +274,7 @@ class CommandLine
|
||||
* </code>
|
||||
*
|
||||
* @var array
|
||||
* @see PEAR2\Console\CommandLine\MessageProvider_Default
|
||||
* @see PEAR2\Console\CommandLine\MessageProvider\DefaultProvider
|
||||
*/
|
||||
public $messages = array();
|
||||
|
||||
@ -286,6 +288,9 @@ class CommandLine
|
||||
*/
|
||||
private $_dispatchLater = array();
|
||||
|
||||
private $_lastopt = false;
|
||||
private $_stopflag = false;
|
||||
|
||||
// }}}
|
||||
// __construct() {{{
|
||||
|
||||
@ -345,7 +350,7 @@ class CommandLine
|
||||
// set default instances
|
||||
$this->renderer = new CommandLine\Renderer_Default($this);
|
||||
$this->outputter = new CommandLine\Outputter_Default();
|
||||
$this->message_provider = new CommandLine\MessageProvider_Default();
|
||||
$this->message_provider = new CommandLine\MessageProvider\DefaultProvider();
|
||||
}
|
||||
|
||||
// }}}
|
||||
@ -481,6 +486,7 @@ class CommandLine
|
||||
* @param array $params An array containing the argument attributes
|
||||
*
|
||||
* @return PEAR2\Console\CommandLine\Argument the added argument
|
||||
*
|
||||
* @see PEAR2\Console\CommandLine\Argument
|
||||
*/
|
||||
public function addArgument($name, $params = array())
|
||||
@ -842,6 +848,7 @@ class CommandLine
|
||||
* @param array $params An array of search=>replaces entries
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @todo remove Console::triggerError() and use exceptions only
|
||||
*/
|
||||
public static function triggerError($msgId, $level, $params=array())
|
||||
@ -912,7 +919,7 @@ class CommandLine
|
||||
// Check if an invalid subcommand was specified. If there are
|
||||
// subcommands and no arguments, but an argument was provided, it is
|
||||
// an invalid subcommand.
|
||||
if ( count($this->commands) > 0
|
||||
if (count($this->commands) > 0
|
||||
&& count($this->args) === 0
|
||||
&& count($args) > 0
|
||||
) {
|
||||
@ -925,7 +932,7 @@ class CommandLine
|
||||
}
|
||||
// if subcommand_required is set to true we must check that we have a
|
||||
// subcommand.
|
||||
if ( count($this->commands)
|
||||
if (count($this->commands)
|
||||
&& $this->subcommand_required
|
||||
&& !$result->command_name
|
||||
) {
|
||||
@ -989,23 +996,21 @@ class CommandLine
|
||||
*/
|
||||
protected function parseToken($token, $result, &$args, $argc)
|
||||
{
|
||||
static $lastopt = false;
|
||||
static $stopflag = false;
|
||||
$last = $argc === 0;
|
||||
if (!$stopflag && $lastopt) {
|
||||
if (!$this->_stopflag && $this->_lastopt) {
|
||||
if (substr($token, 0, 1) == '-') {
|
||||
if ($lastopt->argument_optional) {
|
||||
$this->_dispatchAction($lastopt, '', $result);
|
||||
if ($lastopt->action != 'StoreArray') {
|
||||
$lastopt = false;
|
||||
if ($this->_lastopt->argument_optional) {
|
||||
$this->_dispatchAction($this->_lastopt, '', $result);
|
||||
if ($this->_lastopt->action != 'StoreArray') {
|
||||
$this->_lastopt = false;
|
||||
}
|
||||
} else if (isset($result->options[$lastopt->name])) {
|
||||
} else if (isset($result->options[$this->_lastopt->name])) {
|
||||
// case of an option that expect a list of args
|
||||
$lastopt = false;
|
||||
$this->_lastopt = false;
|
||||
} else {
|
||||
throw CommandLine\Exception::factory(
|
||||
'OPTION_VALUE_REQUIRED',
|
||||
array('name' => $lastopt->name),
|
||||
array('name' => $this->_lastopt->name),
|
||||
$this,
|
||||
$this->messages
|
||||
);
|
||||
@ -1015,8 +1020,8 @@ class CommandLine
|
||||
// is to consider that if there's already an element in the
|
||||
// array, and the commandline expects one or more args, we
|
||||
// leave last tokens to arguments
|
||||
if ($lastopt->action == 'StoreArray'
|
||||
&& !empty($result->options[$lastopt->name])
|
||||
if ($this->_lastopt->action == 'StoreArray'
|
||||
&& !empty($result->options[$this->_lastopt->name])
|
||||
&& count($this->args) > ($argc + count($args))
|
||||
) {
|
||||
if (!is_null($token)) {
|
||||
@ -1024,22 +1029,22 @@ class CommandLine
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!is_null($token) || $lastopt->action == 'Password') {
|
||||
$this->_dispatchAction($lastopt, $token, $result);
|
||||
if (!is_null($token) || $this->_lastopt->action == 'Password') {
|
||||
$this->_dispatchAction($this->_lastopt, $token, $result);
|
||||
}
|
||||
if ($lastopt->action != 'StoreArray') {
|
||||
$lastopt = false;
|
||||
if ($this->_lastopt->action != 'StoreArray') {
|
||||
$this->_lastopt = false;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!$stopflag && substr($token, 0, 2) == '--') {
|
||||
if (!$this->_stopflag && substr($token, 0, 2) == '--') {
|
||||
// a long option
|
||||
$optkv = explode('=', $token, 2);
|
||||
if (trim($optkv[0]) == '--') {
|
||||
// the special argument "--" forces in all cases the end of
|
||||
// option scanning.
|
||||
$stopflag = true;
|
||||
$this->_stopflag = true;
|
||||
return;
|
||||
}
|
||||
$opt = $this->findOption($optkv[0]);
|
||||
@ -1072,14 +1077,14 @@ class CommandLine
|
||||
);
|
||||
}
|
||||
// we will have a value next time
|
||||
$lastopt = $opt;
|
||||
$this->_lastopt = $opt;
|
||||
return;
|
||||
}
|
||||
if ($opt->action == 'StoreArray') {
|
||||
$lastopt = $opt;
|
||||
$this->_lastopt = $opt;
|
||||
}
|
||||
$this->_dispatchAction($opt, $value, $result);
|
||||
} else if (!$stopflag && substr($token, 0, 1) == '-') {
|
||||
} else if (!$this->_stopflag && substr($token, 0, 1) == '-') {
|
||||
// a short option
|
||||
$optname = substr($token, 0, 2);
|
||||
if ($optname == '-') {
|
||||
@ -1100,7 +1105,7 @@ class CommandLine
|
||||
// in short: handle -f<value> and -f <value>
|
||||
$next = substr($token, 2, 1);
|
||||
// check if we must wait for a value
|
||||
if ($next === false) {
|
||||
if (!$next) {
|
||||
if ($opt->expectsArgument()) {
|
||||
if ($last && !$opt->argument_optional) {
|
||||
throw CommandLine\Exception::factory(
|
||||
@ -1111,7 +1116,7 @@ class CommandLine
|
||||
);
|
||||
}
|
||||
// we will have a value next time
|
||||
$lastopt = $opt;
|
||||
$this->_lastopt = $opt;
|
||||
return;
|
||||
}
|
||||
$value = false;
|
||||
@ -1136,7 +1141,7 @@ class CommandLine
|
||||
}
|
||||
}
|
||||
if ($opt->action == 'StoreArray') {
|
||||
$lastopt = $opt;
|
||||
$this->_lastopt = $opt;
|
||||
}
|
||||
$value = substr($token, 2);
|
||||
}
|
||||
@ -1145,8 +1150,8 @@ class CommandLine
|
||||
// We have an argument.
|
||||
// if we are in POSIX compliant mode, we must set the stop flag to
|
||||
// true in order to stop option parsing.
|
||||
if (!$stopflag && $this->force_posix) {
|
||||
$stopflag = true;
|
||||
if (!$this->_stopflag && $this->force_posix) {
|
||||
$this->_stopflag = true;
|
||||
}
|
||||
if (!is_null($token)) {
|
||||
$args[] = $token;
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
namespace PEAR2\Console\CommandLine;
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
namespace PEAR2\Console\CommandLine\Action;
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -46,7 +47,7 @@ use PEAR2\Console\CommandLine;
|
||||
* <code>
|
||||
* $ script.php -v -v -v
|
||||
* </code>
|
||||
* or:
|
||||
* or:
|
||||
* <code>
|
||||
* $ script.php -vvv
|
||||
* </code>
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
|
@ -11,21 +11,22 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version CVS: $Id: List.php,v 1.2 2009/02/27 08:03:17 izi Exp $
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
namespace PEAR2\Console\CommandLine;
|
||||
|
||||
/**
|
||||
* Class that represent the List action, a special action that simply output an
|
||||
* Class that represent the List action, a special action that simply output an
|
||||
* array as a list.
|
||||
*
|
||||
* @category Console
|
||||
@ -43,10 +44,10 @@ class Action_List extends Action
|
||||
/**
|
||||
* Executes the action with the value entered by the user.
|
||||
* Possible parameters are:
|
||||
* - message: an alternative message to display instead of the default
|
||||
* - message: an alternative message to display instead of the default
|
||||
* message,
|
||||
* - delimiter: an alternative delimiter instead of the comma,
|
||||
* - post: a string to append after the message (default is the new line
|
||||
* - post: a string to append after the message (default is the new line
|
||||
* char).
|
||||
*
|
||||
* @param mixed $value The option value
|
||||
@ -57,8 +58,8 @@ class Action_List extends Action
|
||||
public function execute($value = false, $params = array())
|
||||
{
|
||||
$list = isset($params['list']) ? $params['list'] : array();
|
||||
$msg = isset($params['message'])
|
||||
? $params['message']
|
||||
$msg = isset($params['message'])
|
||||
? $params['message']
|
||||
: $this->parser->message_provider->get('LIST_DISPLAYED_MESSAGE');
|
||||
$del = isset($params['delimiter']) ? $params['delimiter'] : ', ';
|
||||
$post = isset($params['post']) ? $params['post'] : "\n";
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -27,8 +28,8 @@ namespace PEAR2\Console\CommandLine\Action;
|
||||
use PEAR2\Console\CommandLine;
|
||||
|
||||
/**
|
||||
* Class that represent the Password action, a special action that allow the
|
||||
* user to specify the password on the commandline or to be prompted for
|
||||
* Class that represent the Password action, a special action that allow the
|
||||
* user to specify the password on the commandline or to be prompted for
|
||||
* entering it.
|
||||
*
|
||||
* @category Console
|
||||
@ -62,7 +63,8 @@ class Password extends CommandLine\Action
|
||||
* Prompts the password to the user without echoing it.
|
||||
*
|
||||
* @return string
|
||||
* @todo not echo-ing the password does not work on windows is there a way
|
||||
*
|
||||
* @todo not echo-ing the password does not work on windows is there a way
|
||||
* to make this work ?
|
||||
*/
|
||||
private function _promptPassword()
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -29,7 +30,7 @@ use PEAR2\Console\CommandLine;
|
||||
/**
|
||||
* Class that represent the StoreArray action.
|
||||
*
|
||||
* The execute method appends the value of the option entered by the user to
|
||||
* The execute method appends the value of the option entered by the user to
|
||||
* the result option array entry.
|
||||
*
|
||||
* @category Console
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -30,7 +31,7 @@ use PEAR2\Console\CommandLine;
|
||||
* Class that represent the StoreFalse action.
|
||||
*
|
||||
* The execute method store the boolean 'false' in the corrsponding result
|
||||
* option array entry (the value is true if the option is not present in the
|
||||
* option array entry (the value is true if the option is not present in the
|
||||
* command line entered by the user).
|
||||
*
|
||||
* @category Console
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -30,7 +31,7 @@ use PEAR2\Console\CommandLine;
|
||||
* Class that represent the StoreInt action.
|
||||
*
|
||||
* The execute method store the value of the option entered by the user as an
|
||||
* integer in the result option array entry, if the value passed is not an
|
||||
* integer in the result option array entry, if the value passed is not an
|
||||
* integer an Exception is raised.
|
||||
*
|
||||
* @category Console
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -29,7 +30,7 @@ use PEAR2\Console\CommandLine;
|
||||
/**
|
||||
* Class that represent the StoreString action.
|
||||
*
|
||||
* The execute method store the value of the option entered by the user as a
|
||||
* The execute method store the value of the option entered by the user as a
|
||||
* string in the result option array entry.
|
||||
*
|
||||
* @category Console
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -30,7 +31,7 @@ use PEAR2\Console\CommandLine;
|
||||
* Class that represent the StoreTrue action.
|
||||
*
|
||||
* The execute method store the boolean 'true' in the corrsponding result
|
||||
* option array entry (the value is false if the option is not present in the
|
||||
* option array entry (the value is false if the option is not present in the
|
||||
* command line entered by the user).
|
||||
*
|
||||
* @category Console
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
|
@ -16,9 +16,10 @@
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -65,6 +66,7 @@ class Argument extends Element
|
||||
*
|
||||
* @return void
|
||||
* @throws PEAR2\Console\CommandLine\Exception
|
||||
*
|
||||
* @todo use exceptions
|
||||
*/
|
||||
public function validate()
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -27,7 +28,7 @@ namespace PEAR2\Console\CommandLine;
|
||||
/**
|
||||
* Class that represent a command with option and arguments.
|
||||
*
|
||||
* This class exist just to clarify the interface but at the moment it is
|
||||
* This class exist just to clarify the interface but at the moment it is
|
||||
* strictly identical to PEAR2\Console\CommandLine class, it could change in the
|
||||
* future though.
|
||||
*
|
||||
@ -60,7 +61,7 @@ class Command extends \PEAR2\Console\CommandLine
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($params = array())
|
||||
public function __construct($params = array())
|
||||
{
|
||||
if (isset($params['aliases'])) {
|
||||
$this->aliases = $params['aliases'];
|
||||
|
@ -20,6 +20,7 @@
|
||||
* @version CVS: $Id: CustomMessageProvider.php 282427 2009-06-19 10:22:48Z izi $
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 1.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -56,8 +57,9 @@ interface CustomMessageProvider
|
||||
* indexes are message codes.
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @see PEAR2\Console\CommandLine_MessageProvider
|
||||
* @see PEAR2\Console\CommandLine_MessageProvider_Default
|
||||
* @see PEAR2\Console\CommandLine_MessageProvider\DefaultProvider
|
||||
*/
|
||||
public function getWithCustomMessages(
|
||||
$code, $vars = array(), $messages = array()
|
||||
|
@ -16,9 +16,10 @@
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -92,7 +93,7 @@ abstract class Element
|
||||
* </code>
|
||||
*
|
||||
* @var array
|
||||
* @see PEAR2\Console\CommandLine_MessageProvider_Default
|
||||
* @see PEAR2\Console\CommandLine_MessageProvider\DefaultProvider
|
||||
*/
|
||||
public $messages = array();
|
||||
|
||||
@ -124,6 +125,7 @@ abstract class Element
|
||||
* Returns the string representation of the element.
|
||||
*
|
||||
* @return string The string representation of the element
|
||||
*
|
||||
* @todo use __toString() instead
|
||||
*/
|
||||
public function toString()
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -42,14 +43,15 @@ interface MessageProvider
|
||||
|
||||
/**
|
||||
* Retrieves the given string identifier corresponding message.
|
||||
* For a list of identifiers please see the provided default message
|
||||
* For a list of identifiers please see the provided default message
|
||||
* provider.
|
||||
*
|
||||
* @param string $code The string identifier of the message
|
||||
* @param array $vars An array of template variables
|
||||
*
|
||||
* @return string
|
||||
* @see PEAR2\Console\CommandLine_MessageProvider_Default
|
||||
*
|
||||
* @see PEAR2\Console\CommandLine\MessageProvider\DefaultProvider
|
||||
*/
|
||||
public function get($code, $vars=array());
|
||||
|
||||
|
@ -16,13 +16,17 @@
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
namespace PEAR2\Console\CommandLine;
|
||||
namespace PEAR2\Console\CommandLine\MessageProvider;
|
||||
|
||||
use PEAR2\Console\CommandLine\MessageProvider;
|
||||
use PEAR2\Console\CommandLine\CustomMessageProvider;
|
||||
|
||||
/**
|
||||
* Lightweight class that manages messages used by PEAR2\Console\CommandLine package,
|
||||
@ -37,7 +41,7 @@ namespace PEAR2\Console\CommandLine;
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since Class available since release 0.1.0
|
||||
*/
|
||||
class MessageProvider_Default
|
||||
class DefaultProvider
|
||||
implements MessageProvider,
|
||||
CustomMessageProvider
|
||||
{
|
@ -16,9 +16,10 @@
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -173,6 +174,7 @@ class Option extends Element
|
||||
* @param string $delim Delimiter to use between short and long option
|
||||
*
|
||||
* @return string The string representation of the option
|
||||
*
|
||||
* @todo use __toString() instead
|
||||
*/
|
||||
public function toString($delim = ", ")
|
||||
@ -269,6 +271,7 @@ class Option extends Element
|
||||
*
|
||||
* @return void
|
||||
* @throws PEAR2\Console\CommandLine\Exception
|
||||
*
|
||||
* @todo use exceptions instead
|
||||
*/
|
||||
public function validate()
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*/
|
||||
|
@ -11,14 +11,15 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
|
@ -11,20 +11,24 @@
|
||||
* through the world-wide-web at the following URI:
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @category Console
|
||||
* @category Console
|
||||
* @package PEAR2\Console\CommandLine
|
||||
* @author David JEAN LOUIS <izimobil@gmail.com>
|
||||
* @copyright 2007-2009 David JEAN LOUIS
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.1
|
||||
* @license http://opensource.org/licenses/mit-license.php MIT License
|
||||
* @version 0.2.3
|
||||
* @link http://pear2.php.net/PEAR2_Console_CommandLine
|
||||
* @since File available since release 0.1.0
|
||||
*
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
namespace PEAR2\Console\CommandLine;
|
||||
|
||||
use PEAR2\Console\CommandLine;
|
||||
use DOMDocument;
|
||||
use DOMNode;
|
||||
use Phar;
|
||||
|
||||
/**
|
||||
* Parser for command line xml definitions.
|
||||
@ -49,7 +53,7 @@ class XmlParser
|
||||
*
|
||||
* @return PEAR2\Console\CommandLine A parser instance
|
||||
*/
|
||||
public static function parse($xmlfile)
|
||||
public static function parse($xmlfile)
|
||||
{
|
||||
if (!is_readable($xmlfile)) {
|
||||
CommandLine::triggerError(
|
||||
@ -58,7 +62,7 @@ class XmlParser
|
||||
array('{$file}' => $xmlfile)
|
||||
);
|
||||
}
|
||||
$doc = new \DomDocument();
|
||||
$doc = new DOMDocument();
|
||||
$doc->load($xmlfile);
|
||||
self::validate($doc);
|
||||
$nodes = $doc->getElementsByTagName('command');
|
||||
@ -77,9 +81,9 @@ class XmlParser
|
||||
*
|
||||
* @return PEAR2\Console\CommandLine A parser instance
|
||||
*/
|
||||
public static function parseString($xmlstr)
|
||||
public static function parseString($xmlstr)
|
||||
{
|
||||
$doc = new \DomDocument();
|
||||
$doc = new DOMDocument();
|
||||
$doc->loadXml($xmlstr);
|
||||
self::validate($doc);
|
||||
$nodes = $doc->getElementsByTagName('command');
|
||||
@ -93,27 +97,48 @@ class XmlParser
|
||||
/**
|
||||
* Validates the xml definition using Relax NG.
|
||||
*
|
||||
* @param DomDocument $doc The document to validate
|
||||
* @param DOMDocument $doc The document to validate
|
||||
*
|
||||
* @return boolean Whether the xml data is valid or not.
|
||||
* @throws PEAR2\Console\CommandLine\Exception
|
||||
*
|
||||
* @todo use exceptions only
|
||||
*/
|
||||
public static function validate($doc)
|
||||
public static function validate(DOMDocument $doc)
|
||||
{
|
||||
$rngfile = __DIR__
|
||||
. '/../../../../data/pear2.php.net/PEAR2_Console_CommandLine/xmlschema.rng';
|
||||
if (!is_file($rngfile)) {
|
||||
$rngfile = __DIR__ . '/../../../../data/xmlschema.rng';
|
||||
$paths = array();
|
||||
if (!class_exists('Phar', false) || !Phar::running()) {
|
||||
// Pyrus
|
||||
$paths[]
|
||||
= 'D:\Vasko\WEB\PHP\_shared\PEAR2\data/pear2.php.net/PEAR2_Console_CommandLine/xmlschema.rng';
|
||||
// PEAR
|
||||
$pearDataDirEnv = getenv('PHP_PEAR_DATA_DIR');
|
||||
if ($pearDataDirEnv) {
|
||||
$paths[] = $pearDataDirEnv .
|
||||
'/PEAR2_Console_CommandLine/xmlschema.rng';
|
||||
}
|
||||
$paths[] = 'D:\Vasko\WEB\PHP\_shared\PEAR2\data/PEAR2_Console_CommandLine/xmlschema.rng';
|
||||
}
|
||||
if (!is_readable($rngfile)) {
|
||||
CommandLine::triggerError(
|
||||
'invalid_xml_file',
|
||||
E_USER_ERROR,
|
||||
array('{$file}' => $rngfile)
|
||||
);
|
||||
$pkgData = __DIR__ . '/../../../../data/';
|
||||
// PHAR dep
|
||||
$paths[] = $pkgData .
|
||||
'pear2.php.net/PEAR2_Console_CommandLine/xmlschema.rng';
|
||||
$paths[] = $pkgData . 'PEAR2_Console_CommandLine/xmlschema.rng';
|
||||
$paths[] = $pkgData . 'pear2/console_commandline/xmlschema.rng';
|
||||
// Git/Composer
|
||||
$paths[] = $pkgData . 'xmlschema.rng';
|
||||
$paths[] = 'xmlschema.rng';
|
||||
|
||||
foreach ($paths as $path) {
|
||||
if (is_readable($path)) {
|
||||
return $doc->relaxNGValidate($path);
|
||||
}
|
||||
}
|
||||
return $doc->relaxNGValidate($rngfile);
|
||||
CommandLine::triggerError(
|
||||
'invalid_xml_file',
|
||||
E_USER_ERROR,
|
||||
array('{$file}' => $path)
|
||||
);
|
||||
}
|
||||
|
||||
// }}}
|
||||
@ -124,14 +149,15 @@ class XmlParser
|
||||
* constructed PEAR2\Console\CommandLine or PEAR2\Console\CommandLine_Command
|
||||
* instance.
|
||||
*
|
||||
* @param DomDocumentNode $node The node to parse
|
||||
* @param bool $isRootNode Whether it is a root node or not
|
||||
* @param DOMNode $node The node to parse
|
||||
* @param bool $isRootNode Whether it is a root node or not
|
||||
*
|
||||
* @return mixed PEAR2\Console\CommandLine or PEAR2\Console\CommandLine_Command
|
||||
* @return CommandLine|CommandLine\Command An instance of CommandLine for
|
||||
* root node, CommandLine\Command otherwise.
|
||||
*/
|
||||
private static function _parseCommandNode($node, $isRootNode = false)
|
||||
private static function _parseCommandNode(DOMNode $node, $isRootNode = false)
|
||||
{
|
||||
if ($isRootNode) {
|
||||
if ($isRootNode) {
|
||||
$obj = new CommandLine();
|
||||
} else {
|
||||
$obj = new CommandLine\Command();
|
||||
@ -184,11 +210,11 @@ class XmlParser
|
||||
* Parses an option node and returns the constructed
|
||||
* PEAR2\Console\CommandLine_Option instance.
|
||||
*
|
||||
* @param DomDocumentNode $node The node to parse
|
||||
* @param DOMNode $node The node to parse
|
||||
*
|
||||
* @return PEAR2\Console\CommandLine\Option The built option
|
||||
*/
|
||||
private static function _parseOptionNode($node)
|
||||
private static function _parseOptionNode(DOMNode $node)
|
||||
{
|
||||
$obj = new CommandLine\Option($node->getAttribute('name'));
|
||||
foreach ($node->childNodes as $cNode) {
|
||||
@ -221,14 +247,14 @@ class XmlParser
|
||||
// _parseArgumentNode() {{{
|
||||
|
||||
/**
|
||||
* Parses an argument node and returns the constructed
|
||||
* Parses an argument node and returns the constructed
|
||||
* PEAR2\Console\CommandLine_Argument instance.
|
||||
*
|
||||
* @param DomDocumentNode $node The node to parse
|
||||
* @param DOMNode $node The node to parse
|
||||
*
|
||||
* @return PEAR2\Console\CommandLine\Argument The built argument
|
||||
*/
|
||||
private static function _parseArgumentNode($node)
|
||||
private static function _parseArgumentNode(DOMNode $node)
|
||||
{
|
||||
$obj = new CommandLine\Argument($node->getAttribute('name'));
|
||||
foreach ($node->childNodes as $cNode) {
|
||||
@ -260,7 +286,7 @@ class XmlParser
|
||||
|
||||
/**
|
||||
* Returns a boolean according to true/false possible strings.
|
||||
*
|
||||
*
|
||||
* @param string $str The string to process
|
||||
*
|
||||
* @return boolean
|
||||
|
Reference in New Issue
Block a user