Example #1
0
    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]
Example #2
0
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