summaryrefslogtreecommitdiffstats
path: root/scripts/combo-layer
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2016-05-02 15:27:27 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-05-09 08:03:59 +0100
commit0af4fadafce690fc8357196cf7247bd222c08d10 (patch)
tree798d5fb5bb58afef3772bbcd08ddf8608b736163 /scripts/combo-layer
parentc9dab31f5f6dc225f5c2c2ca3ec9aeab2ff655d5 (diff)
downloadopenembedded-core-contrib-0af4fadafce690fc8357196cf7247bd222c08d10.tar.gz
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 <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'scripts/combo-layer')
-rwxr-xr-xscripts/combo-layer6
1 files changed, 3 insertions, 3 deletions
diff --git a/scripts/combo-layer b/scripts/combo-layer
index 41d69f8ddba..9297d5973d4 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):