diff options
Diffstat (limited to 'src/lib/Client/Tools/__init__.py')
-rw-r--r-- | src/lib/Client/Tools/__init__.py | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/lib/Client/Tools/__init__.py b/src/lib/Client/Tools/__init__.py index 9b7acee02..56d9aba8b 100644 --- a/src/lib/Client/Tools/__init__.py +++ b/src/lib/Client/Tools/__init__.py @@ -38,21 +38,16 @@ class executor: self.logger.debug('> %s' % command) runpipe = readonlypipe(command, bufsize=16384) - output = '' - cmdstat = -1 - while cmdstat == -1: - runpipe.fromchild.flush() - moreOutput = runpipe.fromchild.readline() - if len(moreOutput) > 0: - self.logger.debug('< %s' % moreOutput[:-1]) - output += moreOutput - cmdstat = runpipe.poll() - for line in runpipe.fromchild.readlines(): + output = [] + runpipe.fromchild.flush() + line = runpipe.fromchild.readline() + while line: if len(line) > 0: self.logger.debug('< %s' % line[:-1]) - output += line - - return (cmdstat, [line for line in output.split('\n') if line]) + output.append(line[:-1]) + line = runpipe.fromchild.readline() + cmdstat = runpipe.poll() + return (cmdstat, output) class Tool: '''All tools subclass this. It defines all interfaces that need to be defined''' |