diff options
author | Corneliu Stoicescu <corneliux.stoicescu@intel.com> | 2014-06-05 12:29:44 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-06-10 17:14:36 +0100 |
commit | 4fe771940a8f59a0d5f1541978d6d9ff73b222f4 (patch) | |
tree | 2096e275a54a0138d3ad38af7c5d61a17851ee31 /meta/lib/oeqa | |
parent | 6df0e8b99fda8ef40862f2e92d85bc3cd371615f (diff) | |
download | openembedded-core-4fe771940a8f59a0d5f1541978d6d9ff73b222f4.tar.gz openembedded-core-4fe771940a8f59a0d5f1541978d6d9ff73b222f4.tar.bz2 openembedded-core-4fe771940a8f59a0d5f1541978d6d9ff73b222f4.zip |
oeqa/utils/commands.py: add support for postconfig option
Adding support for postconfig option to the bitbake() and related methods.
This enables us to use 'bitbake -R postconfig_file <command>'.
Usage: bitbake(cmd, postconfig="some confguration")
'postconfig_file' would contain what we add in 'postconfig'
Other methods affected: get_bb_env(), get_bb_var()
Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/lib/oeqa')
-rw-r--r-- | meta/lib/oeqa/utils/commands.py | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/meta/lib/oeqa/utils/commands.py b/meta/lib/oeqa/utils/commands.py index 7637b9def8..802bc2f208 100644 --- a/meta/lib/oeqa/utils/commands.py +++ b/meta/lib/oeqa/utils/commands.py @@ -15,6 +15,7 @@ import subprocess import threading import logging from oeqa.utils import CommandError +from oeqa.utils import ftools class Command(object): def __init__(self, command, bg=False, timeout=None, data=None, **options): @@ -106,24 +107,36 @@ def runCmd(command, ignore_status=False, timeout=None, assert_error=True, **opti return result -def bitbake(command, ignore_status=False, timeout=None, **options): +def bitbake(command, ignore_status=False, timeout=None, postconfig=None, **options): + + if postconfig: + postconfig_file = os.path.join(os.environ.get('BUILDDIR'), 'oeqa-post.conf') + ftools.write_file(postconfig_file, postconfig) + extra_args = "-R %s" % postconfig_file + else: + extra_args = "" + if isinstance(command, basestring): - cmd = "bitbake " + command + cmd = "bitbake " + extra_args + " " + command else: - cmd = [ "bitbake" ] + command + cmd = [ "bitbake" ] + [a for a in (command + extra_args.split(" ")) if a not in [""]] - return runCmd(cmd, ignore_status, timeout, **options) + try: + return runCmd(cmd, ignore_status, timeout, **options) + finally: + if postconfig: + os.remove(postconfig_file) -def get_bb_env(target=None): +def get_bb_env(target=None, postconfig=None): if target: - return runCmd("bitbake -e %s" % target).output + return bitbake("-e %s" % target, postconfig=postconfig).output else: - return runCmd("bitbake -e").output + return bitbake("-e", postconfig=postconfig).output -def get_bb_var(var, target=None): +def get_bb_var(var, target=None, postconfig=None): val = None - bbenv = get_bb_env(target) + bbenv = get_bb_env(target, postconfig=postconfig) for line in bbenv.splitlines(): if line.startswith(var + "="): val = line.split('=')[1] |