diff options
-rw-r--r-- | mitmproxy/tools/_main.py | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/mitmproxy/tools/_main.py b/mitmproxy/tools/_main.py index 0163e8d3..581498ff 100644 --- a/mitmproxy/tools/_main.py +++ b/mitmproxy/tools/_main.py @@ -69,22 +69,35 @@ def run( debug.register_info_dumpers() opts = options.Options() - master = master_cls(opts) - parser = make_parser(opts) - # To make migration from 2.x to 3.0 bearable. - if "-R" in sys.argv and sys.argv[sys.argv.index("-R") + 1].startswith("http"): - print("-R is used for specifying replacements.\n" - "To use mitmproxy in reverse mode please use --mode reverse:SPEC instead") - try: args = parser.parse_args(arguments) except SystemExit: arg_check.check() sys.exit(1) + + try: opts.set(*args.setoptions, defer=True) + opts.confdir = os.path.expanduser(opts.confdir) + if not os.path.isdir(opts.confdir): + os.makedirs(opts.confdir) + + except exceptions.OptionsError as e: + print("%s: %s" % (sys.argv[0], e), file=sys.stderr) + sys.exit(1) + + master = master_cls(opts) + + # To make migration from 2.x to 3.0 bearable. + if "-R" in sys.argv and sys.argv[sys.argv.index("-R") + 1].startswith("http"): + print("-R is used for specifying replacements.\n" + "To use mitmproxy in reverse mode please use --mode reverse:SPEC instead") + + + try: + optmanager.load_paths( opts, os.path.join(opts.confdir, "config.yaml"), |