diff --git a/lib/cli.py b/lib/cli.py index fbc7f12ea643078c07e412c030874797e8c8c067..e9bec2aed0eed2e5109d4affedba87299cc00957 100644 --- a/lib/cli.py +++ b/lib/cli.py @@ -240,11 +240,15 @@ def SubmitOpCode(op): return proc.ExecOpCode(op, logger.ToStdout) -def GenericMain(commands): +def GenericMain(commands, override=None): """Generic main function for all the gnt-* commands. - Argument: a dictionary with a special structure, see the design doc - for command line handling. + Arguments: + - commands: a dictionary with a special structure, see the design doc + for command line handling. + - override: if not None, we expect a dictionary with keys that will + override command line options; this can be used to pass + options from the scripts to generic functions """ # save the program name and the entire command line for later logging @@ -263,6 +267,10 @@ def GenericMain(commands): if func is None: # parse error return 1 + if override is not None: + for key, val in override.iteritems(): + setattr(options, key, val) + logger.SetupLogging(debug=options.debug, program=binary) try: