Added CWD to ProcessLogger, and make sure local runtime have CWD setup correctly
--- a/Beremiz.py Tue Mar 05 20:14:12 2013 +0900
+++ b/Beremiz.py Wed Mar 06 09:40:28 2013 +0900
@@ -493,13 +493,15 @@
self.runtime_port = int(random.random() * 1000) + 61131
# launch local runtime
self.local_runtime = ProcessLogger(self.Log,
- "\"%s\" \"%s\" -p %s -i localhost %s %s"%(sys.executable,
- Bpath("Beremiz_service.py"),
- self.runtime_port,
- {False : "-x 0", True :"-x 1"}[taskbaricon],
- self.local_runtime_tmpdir),
- no_gui=False,
- timeout=500, keyword = "working")
+ "\"%s\" \"%s\" -p %s -i localhost %s %s"%(
+ sys.executable,
+ Bpath("Beremiz_service.py"),
+ self.runtime_port,
+ {False : "-x 0", True :"-x 1"}[taskbaricon],
+ self.local_runtime_tmpdir),
+ no_gui=False,
+ timeout=500, keyword = "working",
+ cwd = self.local_runtime_tmpdir)
self.local_runtime.spin()
return self.runtime_port
--- a/util/ProcessLogger.py Tue Mar 05 20:14:12 2013 +0900
+++ b/util/ProcessLogger.py Wed Mar 06 09:40:28 2013 +0900
@@ -71,7 +71,7 @@
def __init__(self, logger, Command, finish_callback = None,
no_stdout = False, no_stderr = False, no_gui = True,
timeout = None, outlimit = None, errlimit = None,
- endlog = None, keyword = None, kill_it = False):
+ endlog = None, keyword = None, kill_it = False, cwd = None):
self.logger = logger
if not isinstance(Command, list):
self.Command_str = Command
@@ -107,7 +107,7 @@
self.endlock = Lock()
popenargs= {
- "cwd":os.getcwd(),
+ "cwd":os.getcwd() if cwd is None else cwd,
"stdin":subprocess.PIPE,
"stdout":subprocess.PIPE,
"stderr":subprocess.PIPE}