aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mitmproxy/cmdline.py5
-rw-r--r--mitmproxy/main.py21
-rw-r--r--netlib/debug.py26
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)