* Added class logged_runner for logging external programs called from
a python script.
This commit is contained in:
@@ -218,6 +218,32 @@ else:
|
|||||||
return p
|
return p
|
||||||
|
|
||||||
|
|
||||||
|
class logged_runner(object):
|
||||||
|
"""Wrapper for wpylib.shell_tools.run() function.
|
||||||
|
Includes a customizable logging of the external command invocation."""
|
||||||
|
# Imported 20140802 from my check-git-vs-cvs.py tool. Original class name: Runner.
|
||||||
|
log_prefix = "run: "
|
||||||
|
def __init__(self, log=None):
|
||||||
|
if log == None:
|
||||||
|
from wpylib.iofmt.text_output import text_output
|
||||||
|
log = text_output(sys.stdout)
|
||||||
|
self.log = log
|
||||||
|
def log_run(self, prg, args):
|
||||||
|
"""Logs the run command."""
|
||||||
|
self.log("%s%s%s\n" % (self.log_prefix, prg, "".join([ " %s" % a for a in args ])))
|
||||||
|
def __call__(self, prg, args):
|
||||||
|
self.log_run(prg, args)
|
||||||
|
return sh.run(prg, args)
|
||||||
|
def nofail(self, prg, args):
|
||||||
|
"""Like wpylib.shell_tools.run(), but does not raise exception."""
|
||||||
|
self.log_run(prg, args)
|
||||||
|
retcode = subprocess.call((prg,) + tuple(args))
|
||||||
|
if retcode != 0:
|
||||||
|
self.log("%sretcode=%d\n" % (self.log_prefix, retcode))
|
||||||
|
return retcode
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# coreutils
|
# coreutils
|
||||||
|
|
||||||
coreutils = """
|
coreutils = """
|
||||||
|
|||||||
Reference in New Issue
Block a user