diff --git a/cake/console/console_input_argument.php b/cake/console/console_input_argument.php new file mode 100644 index 000000000..3c0c64868 --- /dev/null +++ b/cake/console/console_input_argument.php @@ -0,0 +1,99 @@ + $value) { + $this->{$key} = $value; + } + } else { + $this->name = $name; + $this->help = $help; + $this->required = $required; + $this->choices = $choices; + } + } + +/** + * Get the name of the argument + * + * @return string + */ + public function name() { + return $this->name; + } + +/** + * Generate the help for this this argument. + * + * @param int $width The width to make the name of the option. + * @return string + */ + public function help($width = 0) { + $name = $this->name; + if (strlen($name) < $width) { + $name = str_pad($name, $width, ' '); + } + $optional = ''; + if (!$this->isRequired()) { + $optional = ' (optional)'; + } + return sprintf('%s%s%s', $name, $this->help, $optional); + } + +/** + * Get the usage value for this argument + * + * @return string + */ + public function usage() { + $name = $this->name; + if (!$this->isRequired()) { + $name = '[' . $name . ']'; + } + return $name; + } + +/** + * Check if this argument is a required argument + * + * @return boolean + */ + public function isRequired() { + return (bool) $this->required; + } +} \ No newline at end of file diff --git a/cake/console/console_input_option.php b/cake/console/console_input_option.php new file mode 100644 index 000000000..1827bf32d --- /dev/null +++ b/cake/console/console_input_option.php @@ -0,0 +1,108 @@ + $value) { + $this->{$key} = $value; + } + } else { + $this->name = $name; + $this->short = $short; + $this->help = $help; + $this->boolean = $boolean; + $this->default = $default; + $this->choices = $choices; + } + } + +/** + * Generate the help for this this option. + * + * @param int $width The width to make the name of the option. + * @return string + */ + public function help($width = 0) { + $default = $short = ''; + if (!empty($this->default) && $this->default !== true) { + $default = sprintf(__(' (default: %s)'), $this->default); + } + if (!empty($this->short)) { + $short = ', -' . $this->short; + } + $name = sprintf('--%s%s', $this->name, $short); + if (strlen($name) < $width) { + $name = str_pad($name, $width, ' '); + } + return sprintf('%s%s%s', $name, $this->help, $default); + } + +/** + * Get the usage value for this option + * + * @return string + */ + public function usage() { + $name = empty($this->short) ? '--' . $this->name : '-' . $this->short; + $default = ''; + if (!empty($this->default) && $this->default !== true) { + $default = ' ' . $this->default; + } + return sprintf('[%s%s]', $name, $default); + } + +/** + * Get the default value for this option + * + * @return void + */ + public function defaultValue() { + return $this->default; + } + +/** + * Check if this option is a boolean option + * + * @return boolean + */ + public function isBoolean() { + return (bool) $this->boolean; + } +} diff --git a/cake/console/console_option_parser.php b/cake/console/console_option_parser.php index 53c8c21b8..aab7429ad 100644 --- a/cake/console/console_option_parser.php +++ b/cake/console/console_option_parser.php @@ -17,6 +17,8 @@ * @since CakePHP(tm) v 2.0 * @license MIT License (http://www.opensource.org/licenses/mit-license.php) */ +require_once 'console_input_option.php'; +require_once 'console_input_argument.php'; /** * Handles parsing the ARGV in the command line and provides support @@ -546,176 +548,3 @@ class ConsoleOptionParser { return isset($this->_tokens[0]) ? $this->_tokens[0] : ''; } } - - -/** - * An object to represent a single option used in the command line. - * ConsoleOptionParser creates these when you use addOption() - * - * @see ConsoleOptionParser::addOption() - * @package cake.console - */ -class ConsoleInputOption { - -/** - * Make a new Input Option - * - * @param mixed $name The long name of the option, or an array with all the properites. - * @param string $short The short alias for this option - * @param string $help The help text for this option - * @param boolean $boolean Whether this option is a boolean option. Boolean options don't consume extra tokens - * @param string $default The default value for this option. - * @param arraty $choices Valid choices for this option. - * @return void - */ - public function __construct($name, $short = null, $help = '', $boolean = false, $default = '', $choices = array()) { - if (is_array($name) && isset($name['name'])) { - foreach ($name as $key => $value) { - $this->{$key} = $value; - } - } else { - $this->name = $name; - $this->short = $short; - $this->help = $help; - $this->boolean = $boolean; - $this->default = $default; - $this->choices = $choices; - } - } - -/** - * Generate the help for this this option. - * - * @param int $width The width to make the name of the option. - * @return string - */ - public function help($width = 0) { - $default = $short = ''; - if (!empty($this->default) && $this->default !== true) { - $default = sprintf(__(' (default: %s)'), $this->default); - } - if (!empty($this->short)) { - $short = ', -' . $this->short; - } - $name = sprintf('--%s%s', $this->name, $short); - if (strlen($name) < $width) { - $name = str_pad($name, $width, ' '); - } - return sprintf('%s%s%s', $name, $this->help, $default); - } - -/** - * Get the usage value for this option - * - * @return string - */ - public function usage() { - $name = empty($this->short) ? '--' . $this->name : '-' . $this->short; - $default = ''; - if (!empty($this->default) && $this->default !== true) { - $default = ' ' . $this->default; - } - return sprintf('[%s%s]', $name, $default); - } - -/** - * Get the default value for this option - * - * @return void - */ - public function defaultValue() { - return $this->default; - } - -/** - * Check if this option is a boolean option - * - * @return boolean - */ - public function isBoolean() { - return (bool) $this->boolean; - } -} - - - -/** - * An object to represent a single argument used in the command line. - * ConsoleOptionParser creates these when you use addArgument() - * - * @see ConsoleOptionParser::addArgument() - * @package cake.console - */ -class ConsoleInputArgument { - -/** - * Make a new Input Argument - * - * @param mixed $name The long name of the option, or an array with all the properites. - * @param string $help The help text for this option - * @param boolean $required Whether this argument is required. Missing required args will trigger exceptions - * @param arraty $choices Valid choices for this option. - * @return void - */ - public function __construct($name, $help = '', $required = false, $choices = array()) { - if (is_array($name) && isset($name['name'])) { - foreach ($name as $key => $value) { - $this->{$key} = $value; - } - } else { - $this->name = $name; - $this->help = $help; - $this->required = $required; - $this->choices = $choices; - } - } - -/** - * Get the name of the argument - * - * @return void - */ - public function name() { - return $this->name; - } - -/** - * Generate the help for this this argument. - * - * @param int $width The width to make the name of the option. - * @return string - */ - public function help($width = 0) { - $name = $this->name; - if (strlen($name) < $width) { - $name = str_pad($name, $width, ' '); - } - $optional = ''; - if (!$this->isRequired()) { - $optional = ' (optional)'; - } - return sprintf('%s%s%s', $name, $this->help, $optional); - } - -/** - * Get the usage value for this argument - * - * @return string - */ - public function usage() { - $name = $this->name; - if (!$this->isRequired()) { - $name = '[' . $name . ']'; - } - return $name; - } - -/** - * Check if this argument is a required argument - * - * @return boolean - */ - public function isRequired() { - return (bool) $this->required; - } -}