--- /dev/null
+#!/usr/bin/env python
+
+import moe
+import moe.util
+import os.path
+
+def init(e):
+ user = e.cfgs["TEST_USER"]
+ if user == "":
+ e.log.verbose("Sandbox running locally\n")
+ e.builtins.parse_line("BOXDIR=${HOME}/box")
+ e.builtins.parse_line("BOXEXE=${HOME}/bin/box")
+ else:
+ e.log.verbose("Sandbox user: %s\n" % user);
+ e.builtins.parse_line("BOXDIR=${HOME}/box")
+ e.builtins.parse_line("BOXEXE=${HOME}/bin/box-" + user)
+ e.builtins.parse_line("BOXCMD=${BOXEXE} -c${BOXDIR}")
+ dir = e.cfgs["BOXDIR"]
+ cmd = e.cfgs["BOXCMD"]
+ exe = e.cfgs["BOXEXE"]
+ e.log.verbose("Sandbox directory: %s\n" % dir)
+ e.log.verbose("Sandbox command: %s\n" % cmd)
+ if dir == "" or not os.path.isdir(dir) or exe == "" or not os.path.isfile(exe):
+ raise moe.MoeErr, "Sandbox set up incorrectly"
+
+def clean(e):
+ moe.util.remove_tree_contents(e.cfgs["BOXDIR"])
+
+def setup(e):
+ clean(e)
+ return e.cfgs["BOXDIR"]
+
+def show(e, msg):
+ if e.log.verbosity > 1:
+ e.log.verbose("Box contents for %s:\n" % msg)
+ e.log.flush()
+ os.system("ls -Al %s | sed 's/^/\t/'" % e.cfgs["BOXDIR"])
+
+def run(e, opts,