diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2016-06-11 16:40:21 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2016-06-11 16:40:21 +1200 |
commit | e367b8819569a7811d2625a2b59610b508e8175c (patch) | |
tree | 84de6eb8e4756eb2dd9acea741e89d6b5585179f | |
parent | 4831e3e0bcd6dc94c84df3dd224c354732bd3655 (diff) | |
download | mitmproxy-e367b8819569a7811d2625a2b59610b508e8175c.tar.gz mitmproxy-e367b8819569a7811d2625a2b59610b508e8175c.tar.bz2 mitmproxy-e367b8819569a7811d2625a2b59610b508e8175c.zip |
Add a --sysinfo flag to all daemons
This dumps all the platform information and mitmproxy version data we'd
normally need to troubleshoot an issue.
-rw-r--r-- | mitmproxy/cmdline.py | 5 | ||||
-rw-r--r-- | mitmproxy/main.py | 21 | ||||
-rw-r--r-- | netlib/debug.py | 26 |
3 files changed, 44 insertions, 8 deletions
diff --git a/mitmproxy/cmdline.py b/mitmproxy/cmdline.py index a873143d..4727e263 100644 --- a/mitmproxy/cmdline.py +++ b/mitmproxy/cmdline.py @@ -220,6 +220,11 @@ def basic_options(parser): version="%(prog)s" + " " + version.VERSION ) parser.add_argument( + '--sysinfo', + action='store_true', + dest='sysinfo', + ) + parser.add_argument( '--shortversion', action='version', help="show program's short version number and exit", diff --git a/mitmproxy/main.py b/mitmproxy/main.py index 38a204fd..34d4aa6b 100644 --- a/mitmproxy/main.py +++ b/mitmproxy/main.py @@ -11,6 +11,7 @@ from mitmproxy import exceptions from mitmproxy.proxy import config from mitmproxy.proxy import server from netlib import version_check +from netlib import debug def assert_utf8_env(): @@ -40,6 +41,15 @@ def get_server(dummy_server, options): sys.exit(1) +def process_options(parser, options): + if options.sysinfo: + print(debug.sysinfo()) + sys.exit(0) + if options.quiet: + options.verbose = 0 + return config.process_proxy_options(parser, options) + + def mitmproxy(args=None): # pragma: no cover if os.name == "nt": print("Error: mitmproxy's console interface is not supported on Windows. " @@ -52,10 +62,8 @@ def mitmproxy(args=None): # pragma: no cover parser = cmdline.mitmproxy() options = parser.parse_args(args) - if options.quiet: - options.verbose = 0 + proxy_config = process_options(parser, options) - proxy_config = config.process_proxy_options(parser, options) console_options = console.master.Options(**cmdline.get_common_options(options)) console_options.palette = options.palette console_options.palette_transparent = options.palette_transparent @@ -81,11 +89,10 @@ def mitmdump(args=None): # pragma: no cover parser = cmdline.mitmdump() options = parser.parse_args(args) + proxy_config = process_options(parser, options) if options.quiet: - options.verbose = 0 options.flow_detail = 0 - proxy_config = config.process_proxy_options(parser, options) dump_options = dump.Options(**cmdline.get_common_options(options)) dump_options.flow_detail = options.flow_detail dump_options.keepserving = options.keepserving @@ -116,10 +123,8 @@ def mitmweb(args=None): # pragma: no cover parser = cmdline.mitmweb() options = parser.parse_args(args) - if options.quiet: - options.verbose = 0 + proxy_config = process_options(parser, options) - proxy_config = config.process_proxy_options(parser, options) web_options = web.master.Options(**cmdline.get_common_options(options)) web_options.intercept = options.intercept web_options.wdebug = options.wdebug diff --git a/netlib/debug.py b/netlib/debug.py new file mode 100644 index 00000000..ca25b828 --- /dev/null +++ b/netlib/debug.py @@ -0,0 +1,26 @@ +import platform +from netlib import version + +""" + Some utilities to help with debugging. +""" + +def sysinfo(): + data = [ + "Mitmproxy verison: %s"%version.VERSION, + "Python version: %s"%platform.python_version(), + "Platform: %s"%platform.platform(), + ] + d = platform.linux_distribution() + if d[0]: + data.append("Linux distro: %s %s %s"%d) + + d = platform.mac_ver() + if d[0]: + data.append("Mac version: %s %s %s"%d) + + d = platform.win32_ver() + if d[0]: + data.append("Windows version: %s %s %s %s"%d) + + return "\n".join(data) |