Exemplo n.º 1
0
def BashCommandTask(taskmanager, term_source, task, environment=None):
    '''
       environment - list of tuples (EnvVarName, Value)
       Launch a task which is effectively a bash script.
    '''
    f = QTemporaryFile()
    f.setFileTemplate( f.fileTemplate() )
    f.open()
    f.write(term_source)
    f.flush()
    f.close()
    f.setAutoRemove(False)
    process = QtCore.QProcess()
    ApplyEnvironment(process, environment)
    process.readyReadStandardOutput.connect( lambda taskmanager=taskmanager, process=process, task=task :
                                                 taskmanager.write_process_output(process, False, task) )
    process.readyReadStandardError.connect( lambda taskmanager=taskmanager, process=process, task=task :
                                                taskmanager.write_process_output(process, False, task) )
    process.finished.connect( lambda exitcode, taskmanager=taskmanager, process=process, task=task :
                                  taskmanager.finished(exitcode, task, process) )
    process.start("bash", [f.fileName()])
    return process