From ac83df7815ff3db042875db51a43c107e982ee70 Mon Sep 17 00:00:00 2001 From: Martin Gracik Date: Tue, 24 Mar 2009 11:05:40 +0100 Subject: Initial commit --- anate/baseutils.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 anate/baseutils.py (limited to 'anate/baseutils.py') diff --git a/anate/baseutils.py b/anate/baseutils.py new file mode 100644 index 0000000..f084e64 --- /dev/null +++ b/anate/baseutils.py @@ -0,0 +1,44 @@ +import logging +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger('anate.baseutils') + +import os +import subprocess + + +class Subprocess(object): + def __init__(self, cmd, *args): + self._cmd = [cmd] + self._args = map(str, list(args)) + + self._rc = None + self._stdout = [] + self._stderr = [] + + def run(self): + logger.info('running command %s', self._cmd + self._args) + proc = subprocess.Popen(self._cmd + self._args, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + while True: + (out_str, err_str) = proc.communicate() + if out_str: + self._stdout.append(out_str) + if err_str: + self._stderr.append(err_str) + + if proc.returncode is not None: + self._rc = proc.returncode + break + + @property + def rc(self): + return self._rc + + @property + def stdout(self): + return self._stdout + + @property + def stderr(self): + return self._stderr -- cgit