From 0af4fadafce690fc8357196cf7247bd222c08d10 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Mon, 2 May 2016 15:27:27 +0200 Subject: combo-layer: runcmd() enhancements Allow setting the environment. Due to a subprocess quirk, it must always be set explicitly (reuses the one from the previous call if not set, instead of falling back to os.environ). Embedding nul characters will be useful for parsing git output more reliably; support dumping such output a bit better. Signed-off-by: Patrick Ohly Signed-off-by: Ross Burton --- scripts/combo-layer | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'scripts/combo-layer') diff --git a/scripts/combo-layer b/scripts/combo-layer index 41d69f8ddb..9297d5973d 100755 --- a/scripts/combo-layer +++ b/scripts/combo-layer @@ -174,7 +174,7 @@ class Configuration(object): logger.error("ERROR: patchutils package is missing, please install it (e.g. # apt-get install patchutils)") sys.exit(1) -def runcmd(cmd,destdir=None,printerr=True,out=None): +def runcmd(cmd,destdir=None,printerr=True,out=None,env=None): """ execute command, raise CalledProcessError if fail return output if succeed @@ -186,7 +186,7 @@ def runcmd(cmd,destdir=None,printerr=True,out=None): else: err = os.tmpfile() try: - subprocess.check_call(cmd, stdout=out, stderr=err, cwd=destdir, shell=isinstance(cmd, str)) + subprocess.check_call(cmd, stdout=out, stderr=err, cwd=destdir, shell=isinstance(cmd, str), env=env or os.environ) except subprocess.CalledProcessError,e: err.seek(0) if printerr: @@ -195,7 +195,7 @@ def runcmd(cmd,destdir=None,printerr=True,out=None): err.seek(0) output = err.read() - logger.debug("output: %s" % output ) + logger.debug("output: %s" % output.replace(chr(0), '\\0')) return output def action_init(conf, args): -- cgit 1.2.3-korg