Define and use other global arguments

To define more automatic global arguments than the ones provided automatically by Dispatcher (see this explanation for more information), use the GlobalArgument object to create all you need and pass them to the Dispatcher at creation time.

Check craft_cli.dispatcher.GlobalArgument for more information about the parameters needed, but it’s very straightforward to create these objects. E.g.:

ga_sec = GlobalArgument("secure_mode", "flag", "-s", "--secure", "Run the app in secure mode")

To use it, just pass a list of the needed global arguments to the dispatcher using the extra_global_args option:

dispatcher = Dispatcher(..., extra_global_args=[ga_sec])

The dispatcher.pre_parse_args method returns the global arguments already parsed, as a dictionary. Use the name you gave to the global argument to check for its value and react properly. E.g.:

global_args = dispatcher.pre_parse_args(sys.argv[1:])
app_config.set_secure_mode(global_args["secure_mode"])