2013-06-27 23:26:29 +02:00
|
|
|
|
|
|
|
|
|
|
|
def log_command(command, logger):
|
|
|
|
import subprocess
|
|
|
|
import select
|
|
|
|
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
|
|
while True:
|
|
|
|
reads = [process.stdout.fileno(), process.stderr.fileno()]
|
|
|
|
ret = select.select(reads, [], [])
|
|
|
|
for fd in ret[0]:
|
|
|
|
if fd == process.stdout.fileno():
|
|
|
|
line = process.stdout.readline()
|
|
|
|
if line != '':
|
2013-06-30 19:51:24 +02:00
|
|
|
logger.debug(line.strip())
|
2013-06-27 23:26:29 +02:00
|
|
|
if fd == process.stderr.fileno():
|
|
|
|
line = process.stderr.readline()
|
|
|
|
if line != '':
|
2013-06-30 19:51:24 +02:00
|
|
|
logger.error(line.strip())
|
2013-06-27 23:26:29 +02:00
|
|
|
if process.poll() is not None:
|
|
|
|
break
|
|
|
|
return process.returncode
|