--- a/trunk/cforge/cforge/Package/CFORGE/Scripts/cds_script.py +++ b/trunk/cforge/cforge/Package/CFORGE/Scripts/cds_script.py @@ -2,8 +2,33 @@ import sys import os +# +# this is a general helper module providing some basic functions to +# e.g. run CODESYS or another process with certain arguments +# +# + from System.Diagnostics import Process from System.Net import WebClient + +def RunProcess(workdir, process, args): + exitcode = -1 + print("run process: " + process + " " + args) + if not os.path.exists(workdir): + print("Path does not exist: " + workdir) + if not os.path.exists(os.path.join(workdir, process)): + print("File does not exist: " + process) + else: + p = Process() + p.StartInfo.WorkingDirectory=workdir + p.StartInfo.FileName = process + p.StartInfo.Arguments = args + p.Start() + p.WaitForExit() + exitcode = p.ExitCode + print("done: " + str(exitcode)) + return exitcode + def RunCodesysWithScript(scriptfilename, scriptargs=None): print(scriptfilename) @@ -25,8 +50,8 @@ codesys_exe = os.path.join(cdsdir, "Common", "CODESYS.exe") packageman_exe = os.path.join(cdsdir, "Common", "PackageManager.exe") workdir = os.path.join(cdsdir, "Common") - - if not os.path.exists(scriptfilename): + exitcode = -1 + if not os.path.exists(os.path.join(workingdir,scriptfilename)): print("File does not exist: " + scriptfilename) else: @@ -34,13 +59,18 @@ p.StartInfo.WorkingDirectory=workdir p.StartInfo.FileName = codesys_exe - processargs = "--profile='" + lastprofile + "' --noUI --runscript='" + scriptfilename + "'" + processargs = "--profile='" + lastprofile + "' --runscript='" + os.path.join(workingdir,scriptfilename) + "'" + processargs += " --noUI" if scriptargs != None: processargs += " --scriptargs:'" + scriptargs + "'" - + print("running codesys with script " + scriptfilename) p.StartInfo.Arguments = processargs p.Start() - p.WaitForExit() + p.WaitForExit() + + exitcode = p.ExitCode + print("done: " + str(exitcode)) + return exitcode