To use this module we have to declare a set of script options with the
function mbfl_declare_option()
. Options declarations should be
done at the beginning of the script, before doing anything else, or in
the “before parsing options” functions.
In the main block of the script, options are parsed by invoking
mbfl_getopts_parse()
: this function will update global variables
and invoke a script function for each option on the command line. It
can also select a function to be invoked as the main action of the
script.
Example of option declaration:
mbfl_declare_option ALPHA no a alpha noarg "enable alpha option"
this code declares an option with no argument having properties:
script_option_ALPHA
, which will be set to
no
by default and to yes
if the option is used.
enable alpha option
, to be shown in the usage help
screen.
If the option is used: the function script_option_update_alpha
is invoked (if it exists) with
no arguments, after the variable script_option_ALPHA
has been set to yes
; in the
function name: alpha
is the lower case variant of the keyword ALPHA
. Valid option
uses are:
$ script.sh -a $ script.sh --alpha
Example of option declaration:
mbfl_declare_option BETA 123 b beta witharg "select beta value"
this code declares an option with argument having properties:
script_option_BETA
, which will be set to
123
by default and to the value selected on the command line if
the option is used.
select beta value
, to be shown in the usage output.
If the option is used: the function script_option_update_beta
is invoked (if it exists) with
no arguments, after the variable script_option_BETA
has been set to the selected value; in
the function name: beta
is the lower case variant of the keyword BETA
. Valid option
uses are:
$ script.sh -b456 $ script.sh --beta=456
it is an error to use the switch -b or --beta with no argument (that is: with an empty string as argument).
A special option example:
mbfl_declare_option ACTION_GAMMA \ no g gamma noarg "do gamma action" mbfl_declare_option ACTION_DELTA \ yes d delta noarg "do delta action"
this code declares two options with no arguments; the difference from
the other declarations is that the keywords are prefixed with
ACTION_
: this prefix is recognised by the module and causes, if
the option is used on the command line, the following code to be
evaluated at arguments parsing time:
mbfl_main_set_main script_action_gamma
or:
mbfl_main_set_main script_action_delta
where the argument script_action_gamma
is built by prefixing the
lower case version of the keyword with script_
. The code selects
a function as main function for the script. Driving
script execution.
Additionally, if the default value is yes
: the main function is
selected at declaration time (that is by mbfl_declare_option()
);
this is useful to declare an action option and select automatically the
action function. In the example: the function
script_action_delta()
is selected as main action function.
It is an error to declare a keyword prefixed with ACTION_
with an
option with argument (witharg
as argument to
mbfl_declare_option()
).
This document describes version 3.0.0-devel.9 of Marcos Bash Functions Library.