def LoadScriptList(self): ''' loads a list of all scripts ''' Logger.debug (u'Scripts: Loading Script List') self.uScriptListSettingString = u'' self.aScriptNameList = GetDirList(oORCA.uScriptsPath) self.aScriptNameList.sort(key = lambda x: x) for uScriptName in self.aScriptNameList: self.uScriptListSettingString+=u'"{0}",'.format(uScriptName) self.uScriptListSettingString=self.uScriptListSettingString[:-1]
class cScripts(object): ''' container for all scripts ''' def __init__(self): self.aScriptNameList = [] self.aScripts = {} self.aModules = {} self.uScriptListSettingString = u'' def Init(self): ''' dummy ''' pass def DeInit(self): ''' deinits all scripts ''' for oScriptName in self.aScripts: self.aScripts[oScriptName].DeInit() def RunScript(self,uScriptName,args): ''' runs a script ''' oScript=self.LoadScript(uScriptName) if oScript: return self.aScripts[uScriptName].RunScript(args) LogError (u'Script '+uScriptName+u': not found') return u'' def LoadScriptList(self): ''' loads a list of all scripts ''' Logger.debug (u'Scripts: Loading Script List') self.uScriptListSettingString = u'' self.aScriptNameList = GetDirList(oORCA.uScriptsPath) self.aScriptNameList.sort(key = lambda x: x) for uScriptName in self.aScriptNameList: self.uScriptListSettingString+=u'"{0}",'.format(uScriptName) self.uScriptListSettingString=self.uScriptListSettingString[:-1] def LoadScript(self,uScriptName): ''' loads a specific script ''' if uScriptName in self.aScripts: return self.aModules.get(uScriptName) if uScriptName=="": return None Logger.info (u'Scripts: Loading Script: '+uScriptName) uScriptFilePy = AdjustPathToOs(oORCA.uScriptsPath+u'/'+uScriptName+u'/script.py') uScriptFile = uScriptFilePy if not FileExists(uScriptFile): return None try: oModule = imp.load_source('cScript'+"_"+uScriptName, uScriptFile) self.aModules[uScriptName]=oModule oScript = oModule.cScript() oScript.Init(oORCA,uScriptName, uScriptFile) self.aScripts[uScriptName]=oScript return oModule except Exception as e: uMsg=LogError(u'Scripts: Fatal Error Loading Script: '+uScriptName+ u' :',e) ShowErrorPopUp(uMessage=uMsg) return None def OnPause(self): ''' pauses a script ''' for oScriptName in self.aScripts: self.aScripts[oScriptName].OnPause() def OnResume(self): ''' resumes a script ''' for oScriptName in self.aScripts: self.aScripts[oScriptName].OnResume() def GetScriptListForScriptType(self, uType): ''' gets a list a scripts for a specific script type ''' aResult=[] #Load all Scripts for uScriptName in self.aScriptNameList: self.LoadScript(uScriptName) for uScriptName in self.aScriptNameList: if uScriptName in self.aScripts: if self.aScripts[uScriptName].uType==uType: aResult.append(uScriptName) return aResult