aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2011-02-02 10:19:54 +1300
committerAldo Cortesi <aldo@nullcube.com>2011-02-02 10:19:54 +1300
commitdf9d8832fbe881ab02fcebb0917f393b78455180 (patch)
tree5c864bb96f6004bef78204e8d8515d20e3e2cac3 /libmproxy/console.py
parent405e60215ce135ef7e94803d25c34404d742a06e (diff)
downloadmitmproxy-df9d8832fbe881ab02fcebb0917f393b78455180.tar.gz
mitmproxy-df9d8832fbe881ab02fcebb0917f393b78455180.tar.bz2
mitmproxy-df9d8832fbe881ab02fcebb0917f393b78455180.zip
Use last path specified as default prompt.
Diffstat (limited to 'libmproxy/console.py')
-rw-r--r--libmproxy/console.py32
1 files changed, 23 insertions, 9 deletions
diff --git a/libmproxy/console.py b/libmproxy/console.py
index 95faa0fd..5ed67244 100644
--- a/libmproxy/console.py
+++ b/libmproxy/console.py
@@ -495,11 +495,12 @@ class ConnectionView(WWrap):
elif key == " ":
self.master.view_next_flow(self.flow)
elif key == "|":
- self.master.path_prompt("Script: ", self.run_script)
+ self.master.path_prompt("Script: ", self.state.last_script, self.run_script)
return key
def run_script(self, path):
path = os.path.expanduser(path)
+ self.state.last_script = path
try:
newflow, serr = self.flow.run_script(path)
except flow.RunException, e:
@@ -583,8 +584,8 @@ class ActionBar(WWrap):
def selectable(self):
return True
- def path_prompt(self, prompt):
- self.w = PathEdit(prompt)
+ def path_prompt(self, prompt, text):
+ self.w = PathEdit(prompt, text)
def prompt(self, prompt):
self.w = urwid.Edit(prompt)
@@ -626,8 +627,8 @@ class StatusBar(WWrap):
def get_edit_text(self):
return self.ab.w.get_edit_text()
- def path_prompt(self, prompt):
- return self.ab.path_prompt(prompt)
+ def path_prompt(self, prompt, text):
+ return self.ab.path_prompt(prompt, text)
def prompt(self, prompt):
return self.ab.prompt(prompt)
@@ -651,6 +652,9 @@ class ConsoleState(flow.State):
self.view_body_mode = VIEW_BODY_RAW
self.view_flow_mode = VIEW_FLOW_REQUEST
+ self.last_script = ""
+ self.last_saveload = ""
+
def add_browserconnect(self, f):
flow.State.add_browserconnect(self, f)
if self.focus is None:
@@ -900,12 +904,14 @@ class ConsoleMaster(controller.Master):
return self._write_flows(path, data)
def save_flows(self, path):
+ self.state.last_saveload = path
data = self.state.dump_flows()
return self._write_flows(path, data)
def load_flows(self, path):
if not path:
return
+ self.state.last_saveload = path
path = os.path.expanduser(path)
try:
f = file(path, "r")
@@ -1008,8 +1014,8 @@ class ConsoleMaster(controller.Master):
text.extend(format_keyvals(examples, key="key", val="text", indent=4))
return urwid.ListBox([urwid.Text(text)])
- def path_prompt(self, prompt, callback, *args):
- self.statusbar.path_prompt(prompt)
+ def path_prompt(self, prompt, text, callback, *args):
+ self.statusbar.path_prompt(prompt, text)
self.view.set_focus("footer")
self.prompting = (callback, args)
@@ -1164,10 +1170,18 @@ class ConsoleMaster(controller.Master):
)
k = None
elif k == "S":
- self.path_prompt("Save flows: ", self.save_flows)
+ self.path_prompt(
+ "Save flows: ",
+ self.state.last_saveload,
+ self.save_flows
+ )
k = None
elif k == "L":
- self.path_prompt("Load flows: ", self.load_flows)
+ self.path_prompt(
+ "Load flows: ",
+ self.state.last_saveload,
+ self.load_flows
+ )
k = None
elif k == "c":
self.prompt("Sticky cookie: ", self.set_stickycookie)