aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/tools
diff options
context:
space:
mode:
Diffstat (limited to 'mitmproxy/tools')
-rw-r--r--mitmproxy/tools/cmdline.py3
-rw-r--r--mitmproxy/tools/console/grideditor/editors.py6
-rw-r--r--mitmproxy/tools/console/options.py3
-rw-r--r--mitmproxy/tools/dump.py10
-rw-r--r--mitmproxy/tools/main.py19
5 files changed, 22 insertions, 19 deletions
diff --git a/mitmproxy/tools/cmdline.py b/mitmproxy/tools/cmdline.py
index aaefd10a..da091c12 100644
--- a/mitmproxy/tools/cmdline.py
+++ b/mitmproxy/tools/cmdline.py
@@ -23,7 +23,7 @@ def common_options(parser, opts):
parser.add_argument(
'--options',
action='store_true',
- help="Dump all options",
+ help="Show all options and their default values",
)
parser.add_argument(
"--conf",
@@ -93,7 +93,6 @@ def common_options(parser, opts):
# Replacements
group = parser.add_argument_group("Replacements")
opts.make_parser(group, "replacements", metavar="PATTERN", short="R")
- opts.make_parser(group, "replacement_files", metavar="PATTERN")
# Set headers
group = parser.add_argument_group("Set Headers")
diff --git a/mitmproxy/tools/console/grideditor/editors.py b/mitmproxy/tools/console/grideditor/editors.py
index 2d24cf86..0d9929ae 100644
--- a/mitmproxy/tools/console/grideditor/editors.py
+++ b/mitmproxy/tools/console/grideditor/editors.py
@@ -1,5 +1,8 @@
+import os
import re
+
import urwid
+
from mitmproxy import exceptions
from mitmproxy import flowfilter
from mitmproxy.addons import script
@@ -87,6 +90,9 @@ class ReplaceEditor(base.GridEditor):
re.compile(val)
except re.error:
return "Invalid regular expression."
+ elif col == 2:
+ if val.startswith("@") and not os.path.isfile(os.path.expanduser(val[1:])):
+ return "Invalid file path"
return False
diff --git a/mitmproxy/tools/console/options.py b/mitmproxy/tools/console/options.py
index 33e3ec38..79bb53c2 100644
--- a/mitmproxy/tools/console/options.py
+++ b/mitmproxy/tools/console/options.py
@@ -1,6 +1,7 @@
import urwid
from mitmproxy import contentviews
+from mitmproxy import optmanager
from mitmproxy.tools.console import common
from mitmproxy.tools.console import grideditor
from mitmproxy.tools.console import select
@@ -173,7 +174,7 @@ class Options(urwid.WidgetWrap):
return super().keypress(size, key)
def do_save(self, path):
- self.master.options.save(path)
+ optmanager.save(self.master.options, path)
return "Saved"
def save(self):
diff --git a/mitmproxy/tools/dump.py b/mitmproxy/tools/dump.py
index e70ce2f9..4bfe2dc4 100644
--- a/mitmproxy/tools/dump.py
+++ b/mitmproxy/tools/dump.py
@@ -3,7 +3,7 @@ from mitmproxy import exceptions
from mitmproxy import addons
from mitmproxy import options
from mitmproxy import master
-from mitmproxy.addons import dumper, termlog
+from mitmproxy.addons import dumper, termlog, termstatus
class DumpMaster(master.Master):
@@ -18,17 +18,11 @@ class DumpMaster(master.Master):
master.Master.__init__(self, options, server)
self.has_errored = False
if with_termlog:
- self.addons.add(termlog.TermLog())
+ self.addons.add(termlog.TermLog(), termstatus.TermStatus())
self.addons.add(*addons.default_addons())
if with_dumper:
self.addons.add(dumper.Dumper())
- if self.options.server:
- self.add_log(
- "Proxy server listening at http://{}:{}".format(server.address[0], server.address[1]),
- "info"
- )
-
if options.rfile:
try:
self.load_flows_file(options.rfile)
diff --git a/mitmproxy/tools/main.py b/mitmproxy/tools/main.py
index 17c1abbb..35567b62 100644
--- a/mitmproxy/tools/main.py
+++ b/mitmproxy/tools/main.py
@@ -39,15 +39,10 @@ def process_options(parser, opts, args):
if args.version:
print(debug.dump_system_info())
sys.exit(0)
- if args.options:
- print(optmanager.dump(opts))
- sys.exit(0)
- if args.quiet:
+ if args.quiet or args.options:
+ args.verbosity = 0
args.flow_detail = 0
- for i in args.setoptions:
- opts.set(i)
-
adict = {}
for n in dir(args):
if n in opts:
@@ -74,9 +69,17 @@ def run(MasterKlass, args): # pragma: no cover
args = parser.parse_args(args)
master = None
try:
- opts.load_paths(args.conf)
+ unknown = optmanager.load_paths(opts, args.conf)
server = process_options(parser, opts, args)
master = MasterKlass(opts, server)
+ master.addons.configure_all(opts, opts.keys())
+ remaining = opts.update_known(**unknown)
+ if remaining and opts.verbosity > 1:
+ print("Ignored options: %s" % remaining)
+ if args.options:
+ print(optmanager.dump_defaults(opts))
+ sys.exit(0)
+ opts.set(*args.setoptions)
def cleankill(*args, **kwargs):
master.shutdown()