diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2016-12-10 08:28:20 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2016-12-12 07:39:59 +1300 |
commit | c5717b17df8577205106351bfe8299ff79f1930b (patch) | |
tree | febfbd20d53f5be8b3e0f454b36e2dcfdecaea5b /mitmproxy | |
parent | f16aab963e20a6c2fa2f63d7841b71f6d068783f (diff) | |
download | mitmproxy-c5717b17df8577205106351bfe8299ff79f1930b.tar.gz mitmproxy-c5717b17df8577205106351bfe8299ff79f1930b.tar.bz2 mitmproxy-c5717b17df8577205106351bfe8299ff79f1930b.zip |
console: add saving of config file
Diffstat (limited to 'mitmproxy')
-rw-r--r-- | mitmproxy/optmanager.py | 2 | ||||
-rw-r--r-- | mitmproxy/tools/console/options.py | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/mitmproxy/optmanager.py b/mitmproxy/optmanager.py index 78b358c9..da1a3f17 100644 --- a/mitmproxy/optmanager.py +++ b/mitmproxy/optmanager.py @@ -212,7 +212,7 @@ class OptManager(metaclass=_DefaultsMeta): if not text: return {} try: - data = ruamel.yaml.load(text, ruamel.yaml.Loader) + data = ruamel.yaml.load(text, ruamel.yaml.RoundTripLoader) except ruamel.yaml.error.YAMLError as v: snip = v.problem_mark.get_snippet() raise exceptions.OptionsError( diff --git a/mitmproxy/tools/console/options.py b/mitmproxy/tools/console/options.py index 94483b3d..8932d850 100644 --- a/mitmproxy/tools/console/options.py +++ b/mitmproxy/tools/console/options.py @@ -9,6 +9,7 @@ from mitmproxy.tools.console import signals footer = [ ('heading_key', "enter/space"), ":toggle ", ('heading_key', "C"), ":clear all ", + ('heading_key', "W"), ":save ", ] @@ -17,6 +18,7 @@ def _mkhelp(): keys = [ ("enter/space", "activate option"), ("C", "clear all options"), + ("w", "save options"), ] text.extend(common.format_keyvals(keys, key="key", val="text", indent=4)) return text @@ -162,8 +164,20 @@ class Options(urwid.WidgetWrap): if key == "C": self.clearall() return None + if key == "W": + self.save() + return None return super().keypress(size, key) + def do_save(self, path): + self.master.options.save(path) + + def save(self): + signals.status_prompt_path.send( + prompt = "Save options to file", + callback = self.do_save + ) + def clearall(self): self.master.options.reset() signals.update_settings.send(self) |