'Run each command in sequence and return a Deferred that fires when all
commands are completed.
@param commands: A list of strings containing sftp commands.
@return: A C{Deferred} that fires when all commands are completed. The
payload is a list of response strings from the server, in the same
order as the commands.'

def runScript(self, commands):

    sem = defer.DeferredSemaphore(1)
    dl = [sem.run(self.runCommand, command) for command in commands]
    return defer.gatherResults(dl)
