def call(): success = False ctx.field("callSucceeded").value = success prog = ctx.field("executable").value args = str(ctx.field("arguments").value).split() workingdir = ctx.field("workingDirectory").value g_Process = MLAB.newProcess() #global g_Process MLAB.processEvents(False) MLAB.log(prog + " is started with the following options:") MLAB.log(args) if g_Process: g_Process.kill() if g_Process: MLAB.deleteProcess(g_Process) g_Process = MLAB.newProcess() g_Process.clearArguments() g_Process.addArgument(prog) g_Process.addArguments(args) g_Process.setWorkDir(workingdir) if ctx.field("outputToLogWindow").value: g_Process.setStdOutHandler(ctx, "processOut") g_Process.setStdErrHandler(ctx, "processOut") g_Process.setExitedHandler(ctx, "processExit") g_Process.setUserInfo(prog) g_Process.run() g_Process.waitForLaunch() if g_Process.isRunning(): MLAB.log(prog + " is running") success = True else: MLAB.log(prog + " failed to start") success = False MLAB.processEvents(True) if g_Process: g_Process.waitForExit() if g_Process: MLAB.deleteProcess(g_Process) ctx.field("callSucceeded").value = success
def _executeScript(script): tmp = MLABFileManager.getTmpDir() if not tmp[-1] == "/": tmp += "/" now = datetime.datetime.now().strftime("%Y%m%d%H%M%S") file = MLABFileManager.getUniqueFilename(tmp,now,".scp") MLABFileManager.writeStringToFile(file,script) winscp = ctx.expandFilename("$(LOCAL)/winscp416.exe") cmd = "\"" + winscp + "\" /script=\"" + file + "\"" proc = MLAB.newProcess() proc.addArgument(cmd) proc.setStdOutHandler(ctx,"_procStdOut") proc.setStdErrHandler(ctx,"_procStdErr") proc.setExitedHandler(ctx,"_procFinished") global _processes _processes[proc] = file proc.run()
def _executeScript(script): tmp = MLABFileManager.getTmpDir() if not tmp[-1] == "/": tmp += "/" now = datetime.datetime.now().strftime("%Y%m%d%H%M%S") file = MLABFileManager.getUniqueFilename(tmp,now,".scp") MLABFileManager.writeStringToFile(file,script) winscp = ctx.expandFilename("$(LOCAL)/winscp416.exe") cmd = "\"" + winscp + "\" /script=\"" + file + "\"" proc = MLAB.newProcess() proc.addArgument(cmd) proc.setStdOutHandler(ctx,"_procStdOut") proc.setStdErrHandler(ctx,"_procStdErr") proc.setExitedHandler(ctx,"_procFinished") global _processes _processes[proc] = file proc.run()