From: Rob Browning Date: Fri, 4 Dec 2020 23:55:00 +0000 (-0600) Subject: Add --import-py-module X-Git-Url: https://arthur.barton.de/gitweb/?a=commitdiff_plain;h=6a30ebef928ebfb9a9199440cf99a2f68da04b90;p=bup.git Add --import-py-module This can be used by tests (and will be used by test-save-errors) to override functions for error injection, etc. Signed-off-by: Rob Browning --- diff --git a/lib/cmd/bup b/lib/cmd/bup index c084e31..8a393f8 100755 --- a/lib/cmd/bup +++ b/lib/cmd/bup @@ -56,6 +56,21 @@ from bup.helpers import ( from bup.io import byte_stream, path_msg from bup.options import _tty_width +def maybe_import_early(argv): + """Scan argv and import any modules specified by --import-py-module.""" + while argv: + if argv[0] != '--import-py-module': + argv = argv[1:] + continue + if len(argv) < 2: + log("bup: --import-py-module must have an argument\n") + exit(2) + mod = argv[1] + import_module(mod) + argv = argv[2:] + +maybe_import_early(compat.argv) + handle_ctrl_c() cmdpath = path.cmddir() @@ -110,7 +125,8 @@ if len(argv) < 2: # Handle global options. try: - optspec = ['help', 'version', 'debug', 'profile', 'bup-dir='] + optspec = ['help', 'version', 'debug', 'profile', 'bup-dir=', + 'import-py-module='] global_args, subcmd = getopt.getopt(argv[1:], '?VDd:', optspec) except getopt.GetoptError as ex: usage('error: %s' % ex.msg) @@ -132,6 +148,8 @@ for opt in global_args: do_profile = True elif opt[0] in ['-d', '--bup-dir']: bup_dir = argv_bytes(opt[1]) + elif opt[0] == '--import-py-module': + pass else: usage('error: unexpected option "%s"' % opt[0])