$description
$description :
Horde command-line argument parsing package.
Class attributes: standardOptionList : [Option] list of standard options that will be accepted by all instances of this parser class (intended to be overridden by subclasses).
Instance attributes: usage : string a usage string for your program. Before it is displayed to the user, "%prog" will be expanded to the name of your program ($this->prog or os.path.basename(sys.argv[0])). prog : string the name of the current program (to override os.path.basename(sys.argv[0])). epilog : string paragraph of help text to print after option help
optionGroups : [OptionGroup] list of option groups in this parser (option groups are irrelevant for parsing the command-line, but very useful for generating help)
allowInterspersedArgs : bool = true if true, positional arguments may be interspersed with options. Assuming -a and -b each take a single argument, the command-line -ablah foo bar -bboo baz will be interpreted the same as -ablah -bboo -- foo bar baz If this flag were false, that command line would be interpreted as -ablah -- foo bar -bboo baz -- ie. we stop processing options as soon as we see the first non-option argument. (This is the tradition followed by Python's getopt module, Perl's Getopt::Std, and other argument- parsing libraries, but it is generally annoying to users.)
allowUnknownArgs : bool = false if true, unrecognized arguments will be auto-created, instead of throwing a BadOptionException.
ignoreUnknownArgs : bool = false if true, unrecognized arguments will be silently skipped, instead of throwing a BadOptionException.
rargs : [string] the argument list currently being parsed. Only set when parseArgs() is active, and continually trimmed down as we consume arguments. Mainly there for the benefit of callback options. largs : [string] the list of leftover arguments that we have skipped while parsing options. If allowInterspersedArgs is false, this list is always empty. values : Values the set of option values currently being accumulated. Only set when parseArgs() is active. Also mainly for callbacks.
parseArgs( $args = null, $values = null)
Parse the command-line options found in 'args' (default: sys.argv[1:]). Any errors result in a call to 'parserError()', which by default prints the usage message to stderr and calls exit() with an error message. On success returns a pair (values, args) where 'values' is an Values instance (with all your option values) and 'args' is the list of arguments left over after parsing options.
$args | ||
$values |
checkValues( $values, $args)
Check that the supplied option values and leftover arguments are valid. Returns the option values and leftover arguments (possibly adjusted, possibly completely new -- whatever you like). Default implementation just returns the passed-in values; subclasses may override as desired.
$values | ||
$args |
printUsage( $file = null)
(file : file = stdout)
Print the usage message for the current program ($this->_usage) to 'file' (default stdout). Any occurence of the string "%prog" in $this->_usage is replaced with the name of the current program (basename of sys.argv[0]). Does nothing if $this->_usage is empty or not defined.
$file |
printVersion( $file = null)
file : file = stdout
Print the version message for this program ($this->version) to 'file' (default stdout). As with printUsage(), any occurence of "%prog" in $this->version is replaced by the current program's name. Does nothing if $this->version is empty or undefined.
$file |
_processArgs( $largs, $rargs, $values)
_process_args(largs : [string], rargs : [string], values : Values)
Process command-line arguments and populate 'values', consuming options and arguments from 'rargs'. If 'allowInterspersedArgs' is false, stop at the first non-option argument. If true, accumulate any interspersed non-option arguments in 'largs'.
$largs | ||
$rargs | ||
$values |