aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2014-01-12 23:01:59 +1300
committerAldo Cortesi <aldo@nullcube.com>2014-01-12 23:02:29 +1300
commit42d4a2fae96b8b4ba35d3a88e20f278d79a0ccc6 (patch)
treea6df6b73fa85e1a095e1db67ceafa0f0df551f2c /libmproxy
parente5776b8be3ea36c065beabe416506871f34892e6 (diff)
downloadmitmproxy-42d4a2fae96b8b4ba35d3a88e20f278d79a0ccc6.tar.gz
mitmproxy-42d4a2fae96b8b4ba35d3a88e20f278d79a0ccc6.tar.bz2
mitmproxy-42d4a2fae96b8b4ba35d3a88e20f278d79a0ccc6.zip
Script refactoring: move script command parsing into script module.
Diffstat (limited to 'libmproxy')
-rw-r--r--libmproxy/cmdline.py2
-rw-r--r--libmproxy/console/__init__.py18
-rw-r--r--libmproxy/dump.py4
-rw-r--r--libmproxy/flow.py4
-rw-r--r--libmproxy/script.py8
5 files changed, 18 insertions, 18 deletions
diff --git a/libmproxy/cmdline.py b/libmproxy/cmdline.py
index 5114f371..388607af 100644
--- a/libmproxy/cmdline.py
+++ b/libmproxy/cmdline.py
@@ -209,7 +209,7 @@ def common_options(parser):
)
parser.add_argument(
"-s",
- action="append", type=lambda x: shlex.split(x,posix=(os.name != "nt")), dest="scripts", default=[],
+ action="append", type=str, dest="scripts", default=[],
metavar='"script.py --bar"',
help="Run a script. Surround with quotes to pass script arguments. Can be passed multiple times."
)
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py
index f68084ff..536b0bac 100644
--- a/libmproxy/console/__init__.py
+++ b/libmproxy/console/__init__.py
@@ -442,13 +442,13 @@ class ConsoleMaster(flow.FlowMaster):
else:
self.add_event("Method %s error: %s"%(method, val[1]))
- def run_script_once(self, path, f):
- if not path:
+ def run_script_once(self, command, f):
+ if not command:
return
- self.add_event("Running script on flow: %s"%path)
+ self.add_event("Running script on flow: %s"%command)
try:
- s = script.Script(shlex.split(path, posix=(os.name != "nt")), self)
+ s = script.Script(command, self)
except script.ScriptError, v:
self.statusbar.message("Error loading script.")
self.add_event("Error loading script:\n%s"%v.args[0])
@@ -462,15 +462,15 @@ class ConsoleMaster(flow.FlowMaster):
self._run_script_method("error", s, f)
s.unload()
self.refresh_flow(f)
- self.state.last_script = path
+ self.state.last_script = command
- def set_script(self, path):
- if not path:
+ def set_script(self, command):
+ if not command:
return
- ret = self.load_script(path)
+ ret = self.load_script(command)
if ret:
self.statusbar.message(ret)
- self.state.last_script = path
+ self.state.last_script = command
def toggle_eventlog(self):
self.eventlog = not self.eventlog
diff --git a/libmproxy/dump.py b/libmproxy/dump.py
index 83139b46..e76ea1ce 100644
--- a/libmproxy/dump.py
+++ b/libmproxy/dump.py
@@ -111,8 +111,8 @@ class DumpMaster(flow.FlowMaster):
)
scripts = options.scripts or []
- for script_argv in scripts:
- err = self.load_script(script_argv)
+ for command in scripts:
+ err = self.load_script(command)
if err:
raise DumpError(err)
diff --git a/libmproxy/flow.py b/libmproxy/flow.py
index 0aa03198..e0013f1e 100644
--- a/libmproxy/flow.py
+++ b/libmproxy/flow.py
@@ -1398,13 +1398,13 @@ class FlowMaster(controller.Master):
script.unload()
self.scripts.remove(script)
- def load_script(self, script_argv):
+ def load_script(self, command):
"""
Loads a script. Returns an error description if something went
wrong.
"""
try:
- s = script.Script(script_argv, self)
+ s = script.Script(command, self)
except script.ScriptError, v:
return v.args[0]
self.scripts.append(s)
diff --git a/libmproxy/script.py b/libmproxy/script.py
index 747d1567..a80f4694 100644
--- a/libmproxy/script.py
+++ b/libmproxy/script.py
@@ -1,4 +1,4 @@
-import os, traceback, threading
+import os, traceback, threading, shlex
import controller
class ScriptError(Exception):
@@ -45,8 +45,9 @@ class Script:
s = Script(argv, master)
s.load()
"""
- def __init__(self, argv, master):
- self.argv = argv
+ def __init__(self, command, master):
+ self.command = command
+ self.argv = shlex.split(command, posix=(os.name != "nt"))
self.ctx = ScriptContext(master)
self.ns = None
self.load()
@@ -99,7 +100,6 @@ class Script:
def _handle_concurrent_reply(fn, o, args=[], kwargs={}):
reply = o.reply
o.reply = controller.DummyReply()
-
def run():
fn(*args, **kwargs)
reply(o)