Method Getopt.find_all_options()
- Method
find_all_options
array(array) find_all_options(array(string|zero)argv,array(array(array(string)|string|int))options,void|int(-1..1)posix_me_harder,void|intthrow_errors)- Description
This function does the job of several calls to find_option(). The main advantage of this is that it allows it to handle the POSIX_ME_HARDER environment variable better. When either the argument
posix_me_harderor the environment variable POSIX_ME_HARDER is true, no arguments will be parsed after the first non-option on the command line.- Parameter
argv The should be the array of strings that was sent as the second argument to your
main()function.- Parameter
options Each element in the array
optionsshould be an array on the following form:Array stringnameName is a tag used to identify the option in the output.
inttypeType is one of Getopt.HAS_ARG, Getopt.NO_ARG and Getopt.MAY_HAVE_ARG and it affects how the error handling and parsing works. You should use HAS_ARG for options that require a path, a number or similar. NO_ARG should be used for options that do not need an argument, such as --version. MAY_HAVE_ARG should be used for options that may or may not need an argument.
string|array(string)aliasesThis is a string or an array of string of options that will be looked for. Short and long options can be mixed, and short options can be combined into one string. Note that you must include the dashes so that find_all_options() can distinguish between long and short options. Example:
({"-tT","--test"})This would make find_all_options look for -t, -T and --test.void|string|array(string)env_varThis is a string or an array of strings containing names of environment variables that can be used instead of the command line option.
void|mixeddefaultThis is the default value a MAY_HAVE_ARG option will have in the output if it was set but not assigned any value.
Only the first three elements need to be included.
- Parameter
posix_me_harder Don't scan for arguments after the first non-option.
- Parameter
throw_errors If
throw_errorshas been specified find_all_options() will throw errors on failure. If it has been left out, or is0(zero), it will instead print an error message on Stdio.stderr and exit the program with result code 1 on failure.- Returns
The good news is that the output from this function is a lot simpler. find_all_options() returns an array where each element is an array on this form:
Array stringnameOption identifier name from the input.
mixedvalueValue given. If no value was specified, and no default has been specified, the value will be 1.
- Note
find_all_options() modifies
argv.Index
0(zero) ofargvis not scanned for options, since it is reserved for the program name.- See also