Esempio n. 1
0
 def create_console_wnd_for_app(self, param):
     '''
     Start an app with full path and parameters passed in a list
     param: [appFullPath, param1, param2, ...]
     '''
     l = logDir.logDir(str(param))
     t = ConsoleOutputWnd(self, l.getLogFilePath())
     collector = ConsoleOutputCollector()
     cwd = localLibSys.get_root_dir()
     collector.runConsoleApp(t, cwd, param)
     self.wnd_to_console_dict[t] = collector
     
     
     cnt = 1
     app_name = os.path.basename(param[0])
     app_path = os.path.dirname(param[0])
     app_path_and_param_gen_str = "%s(%s) %s"%(app_name, app_path, str(param[1:]))
     if self.app_name_to_task_dict.has_key(app_path_and_param_gen_str):
         while self.app_name_to_task_dict.has_key(app_path_and_param_gen_str + '-' + str(cnt)):
             cnt +=1
         app_path_and_param_gen_str = app_path_and_param_gen_str + '-' + str(cnt)
       
     self.app_name_to_task_dict[app_path_and_param_gen_str] = t
     self.task_to_menu_item_dict[collector] = self.icon.addMenuItem(app_path_and_param_gen_str)
     return collector
Esempio n. 2
0
 def startAppWithParam(self, param):
     l = logDir.logDir(str(param))
     t = logWnd.logWnd(self, l.getLogFilePath())
     t.startAppWithParam(param)
     cnt = 1
     paN = str(param)
     if self.mD.has_key(paN):
       while self.mD.has_key(paN + '-' + str(cnt)):
         cnt +=1
       paN = paN + '-' + str(cnt)
         
     self.mD[paN] = t
     self.tL[t] = self.icon.addMenuItem(paN)
Esempio n. 3
0
 def create_console_wnd_for_app(self, param):
     '''
     Start an app with full path and parameters passed in a list
     param: [appFullPath, param1, param2, ...]
     '''
     l = logDir.logDir(str(param))
     t = logWnd.logWnd(self, l.getLogFilePath())
     t.startAppWithParam(param)
     cnt = 1
     app_path_and_param_gen_str = str(param)
     if self.app_name_to_task_dict.has_key(app_path_and_param_gen_str):
         while self.app_name_to_task_dict.has_key(app_path_and_param_gen_str + '-' + str(cnt)):
             cnt +=1
         app_path_and_param_gen_str = app_path_and_param_gen_str + '-' + str(cnt)
       
     self.app_name_to_task_dict[app_path_and_param_gen_str] = t
     self.task_to_menu_item_dict[t] = self.icon.addMenuItem(app_path_and_param_gen_str)
Esempio n. 4
0
    def runConsoleApp(self, target, cwd = 'D:\\code\\python\\developing\\ufs', progAndParam = ['D:\\code\\python\\developing\\ufs\\webserver-cgi.py']):
        checkExistPath = progAndParam
        if type(checkExistPath) == list:
            checkExistPath = checkExistPath[0]
            if not os.path.exists(checkExistPath):
                #Do not execute if the file does not exist
                return
        self.cwd = cwd
        self.progAndParm = progAndParam
        
        try:
            target.set_title(str(progAndParam))
        except:
            traceback.print_exc()
            print "set title not supported"
        #print target
        #print '-------------------------',progAndParam
        #print cwd
        #self.prog = ['D:\\cygwin\\bin\\ls.exe','-l']
        ext = os.path.splitext(checkExistPath)[1]
        #print 'ext is:', ext
        pythonWinPathList = []
        try:
            pythonWinPathList.append(os.path.join(os.environ['VIRTUAL_ENV'], 'script/pythonw.exe'))
            print pythonWinPathList[0]
        except:
            pass
        if ".py" == ext:
            pythonWinPathList.extend(['c:/Python27/pythonw.exe','d:/python27/pythonw.exe','d:/python25/pythonw.exe',
                                 'c:/python27/pythonw.exe', 'c:/python26/pythonw.exe', 'c:/python25/pythonw.exe'])
            for i in pythonWinPathList:
                if os.path.exists(i):
                    targetPythonExePath = i
                    break
            self.prog = [targetPythonExePath,'-u']
            self.prog.extend(progAndParam)#Param 2 is the app
        else:
            self.prog = []
            self.prog.extend(progAndParam)

        #print self.prog
        #self.SetTitle(progAndParam[0])
        if True:#try:
            #print self.prog
            p = subprocess.Popen(self.prog, cwd = self.cwd, stdout = subprocess.PIPE, stderr = subprocess.PIPE, bufsize=0, creationflags = CREATE_NO_WINDOW)
            self.pList.append(p)
            #print "created pid:", p.pid

            find_flag = False
            for z in self.normal_priority_tasks:
                if progAndParam[0].find(z) != -1:
                    #Need normal priority for this app
                    find_flag = True
            if not find_flag:
                processManager.setPriority(p.pid, 1)
                pass
                #print "setting pid: %d, %s to below normal priority"%(p.pid, progAndParam[0])
            else:
                #print "pid: %d, %s use normal priority"%(p.pid, progAndParam[0])
                pass
            #print 'taskid:%d, pid:%d'%(int(p._handle), int(p.pid))
            normal_log_path = logDir.logDir(str(progAndParam) + "_normal")
            err_log_path = logDir.logDir(str(progAndParam) + "_error")
            thr1 = taskConsoleThread(target, p.stdout, progAndParam[0], False, normal_log_path.getLogFilePath())
            thr1.start()
            self.log_collector_thread_list.append(thr1)
            thr2 = taskConsoleThread(target, p.stderr, progAndParam[0], True, err_log_path.getLogFilePath())
            thr2.start()
            self.log_collector_thread_list.append(thr2)
            #print 'launch ok'
        else:#except:
            print 'launch exception'