aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2017-03-23 11:28:08 +1300
committerAldo Cortesi <aldo@corte.si>2017-03-23 11:28:08 +1300
commiteb66456d16a7d36957e922bf530b5913473b509b (patch)
tree33ea6add77da6dde8c2c9f4eb0d4e9f31069c17b
parent1e81747a2afb142bc6ef5c53c6d4572b94ee4495 (diff)
downloadmitmproxy-eb66456d16a7d36957e922bf530b5913473b509b.tar.gz
mitmproxy-eb66456d16a7d36957e922bf530b5913473b509b.tar.bz2
mitmproxy-eb66456d16a7d36957e922bf530b5913473b509b.zip
console: read and write options to and from file
-rw-r--r--mitmproxy/tools/console/options.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/mitmproxy/tools/console/options.py b/mitmproxy/tools/console/options.py
index 56d22715..98606b9c 100644
--- a/mitmproxy/tools/console/options.py
+++ b/mitmproxy/tools/console/options.py
@@ -5,6 +5,7 @@ import pprint
from typing import Optional, Sequence
from mitmproxy import exceptions
+from mitmproxy import optmanager
from mitmproxy.tools.console import common
from mitmproxy.tools.console import signals
from mitmproxy.tools.console import overlay
@@ -31,7 +32,8 @@ def _mkhelp():
("enter", "edit option"),
("D", "reset all to defaults"),
("d", "reset this option to default"),
- ("w", "save options"),
+ ("l", "load options from file"),
+ ("w", "save options to file"),
]
text.extend(common.format_keyvals(keys, key="key", val="text", indent=4))
return text
@@ -179,6 +181,13 @@ class OptionsList(urwid.ListBox):
self.walker = OptionListWalker(master)
super().__init__(self.walker)
+ def save_config(self, path):
+ optmanager.save(self.master.options, path)
+
+ def load_config(self, path):
+ txt = open(path, "r").read()
+ optmanager.load(self.master.options, txt)
+
def keypress(self, size, key):
if self.walker.editing:
if key == "enter":
@@ -206,6 +215,16 @@ class OptionsList(urwid.ListBox):
elif key == "G":
self.set_focus(len(self.walker.opts) - 1)
self.walker._modified()
+ elif key == "l":
+ signals.status_prompt_path.send(
+ prompt = "Load config from",
+ callback = self.load_config
+ )
+ elif key == "w":
+ signals.status_prompt_path.send(
+ prompt = "Save config to",
+ callback = self.save_config
+ )
elif key == "enter":
foc, idx = self.get_focus()
if foc.opt.typespec == bool: