aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2016-07-16 10:56:33 +1200
committerAldo Cortesi <aldo@nullcube.com>2016-07-16 10:59:47 +1200
commit50f1495f29adee2d3eda011693518ca5ba938037 (patch)
treea4ec369f03b6fbd66b3363a93b6fec62cd7b0da1
parent33d03d916a4866ea59bb530547f028b72d34792a (diff)
downloadmitmproxy-50f1495f29adee2d3eda011693518ca5ba938037.tar.gz
mitmproxy-50f1495f29adee2d3eda011693518ca5ba938037.tar.bz2
mitmproxy-50f1495f29adee2d3eda011693518ca5ba938037.zip
Make mitmdump return an error exit status if errors occurred during run
-rw-r--r--mitmproxy/dump.py3
-rw-r--r--mitmproxy/main.py3
2 files changed, 6 insertions, 0 deletions
diff --git a/mitmproxy/dump.py b/mitmproxy/dump.py
index b95d2627..18c24d61 100644
--- a/mitmproxy/dump.py
+++ b/mitmproxy/dump.py
@@ -45,6 +45,7 @@ class DumpMaster(flow.FlowMaster):
def __init__(self, server, options):
flow.FlowMaster.__init__(self, options, server, flow.State())
+ self.has_errored = False
self.addons.add(*builtins.default_addons())
# This line is just for type hinting
self.options = self.options # type: Options
@@ -115,6 +116,8 @@ class DumpMaster(flow.FlowMaster):
raise DumpError(str(e))
def add_log(self, e, level="info"):
+ if level == "error":
+ self.has_errored = True
if self.options.verbosity >= utils.log_tier(level):
self.echo(
e,
diff --git a/mitmproxy/main.py b/mitmproxy/main.py
index 5ced709b..316db91a 100644
--- a/mitmproxy/main.py
+++ b/mitmproxy/main.py
@@ -118,6 +118,9 @@ def mitmdump(args=None): # pragma: no cover
sys.exit(1)
except (KeyboardInterrupt, _thread.error):
pass
+ if master.has_errored:
+ print("mitmdump: errors occurred during run", file=sys.stderr)
+ sys.exit(1)
def mitmweb(args=None): # pragma: no cover