diff options
| -rw-r--r-- | bitbake/lib/bb/process.py | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/bitbake/lib/bb/process.py b/bitbake/lib/bb/process.py index dc97e3f72f..0e19cbe8de 100644 --- a/bitbake/lib/bb/process.py +++ b/bitbake/lib/bb/process.py | |||
| @@ -63,23 +63,26 @@ class Popen(subprocess.Popen): | |||
| 63 | subprocess.Popen.__init__(self, *args, **options) | 63 | subprocess.Popen.__init__(self, *args, **options) |
| 64 | 64 | ||
| 65 | def _logged_communicate(pipe, log, input): | 65 | def _logged_communicate(pipe, log, input): |
| 66 | if pipe.stdin: | ||
| 67 | if input is not None: | ||
| 68 | pipe.stdin.write(input) | ||
| 69 | pipe.stdin.close() | ||
| 70 | |||
| 66 | bufsize = 512 | 71 | bufsize = 512 |
| 67 | hasoutput = pipe.stdout is not None or pipe.stderr is not None | 72 | outdata, errdata = [], [] |
| 68 | if hasoutput: | 73 | while pipe.poll() is None: |
| 69 | outdata, errdata = [], [] | 74 | if pipe.stdout is not None: |
| 70 | while pipe.poll() is None: | 75 | data = pipe.stdout.read(bufsize) |
| 71 | if pipe.stdout is not None: | 76 | if data is not None: |
| 72 | data = pipe.stdout.read(bufsize) | 77 | outdata.append(data) |
| 73 | if data is not None: | 78 | log.write(data) |
| 74 | outdata.append(data) | 79 | |
| 75 | log.write(data) | 80 | if pipe.stderr is not None: |
| 76 | 81 | data = pipe.stderr.read(bufsize) | |
| 77 | if pipe.stderr is not None: | 82 | if data is not None: |
| 78 | data = pipe.stderr.read(bufsize) | 83 | errdata.append(data) |
| 79 | if data is not None: | 84 | log.write(data) |
| 80 | errdata.append(data) | 85 | return ''.join(outdata), ''.join(errdata) |
| 81 | log.write(data) | ||
| 82 | return ''.join(outdata), ''.join(errdata) | ||
| 83 | 86 | ||
| 84 | def run(cmd, input=None, **options): | 87 | def run(cmd, input=None, **options): |
| 85 | """Convenience function to run a command and return its output, raising an | 88 | """Convenience function to run a command and return its output, raising an |
