console: add saving of config file

This commit is contained in:
Aldo Cortesi 2016-12-10 08:28:20 +13:00
parent f16aab963e
commit c5717b17df
2 changed files with 15 additions and 1 deletions

View File

@ -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(

View File

@ -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)