diff options
author | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2016-04-29 15:55:40 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-01 16:08:48 +0100 |
commit | fe3039322e2f846b336ac5af5177e9da27d79695 (patch) | |
tree | 723588762b45e14424d9d0fdb08f7eb4dbf2331f /meta/lib/oeqa | |
parent | ce4137f4bb955207fede0c4ef338835d9a461f59 (diff) | |
download | openembedded-core-fe3039322e2f846b336ac5af5177e9da27d79695.tar.gz openembedded-core-fe3039322e2f846b336ac5af5177e9da27d79695.tar.bz2 openembedded-core-fe3039322e2f846b336ac5af5177e9da27d79695.zip |
oeqa.utils.commands: Introduce get_bb_vars()
A new function for getting values of multiple bitbake variables at the
same time.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/lib/oeqa')
-rw-r--r-- | meta/lib/oeqa/utils/commands.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/meta/lib/oeqa/utils/commands.py b/meta/lib/oeqa/utils/commands.py index 18fe39ecfe..0297e53dcc 100644 --- a/meta/lib/oeqa/utils/commands.py +++ b/meta/lib/oeqa/utils/commands.py @@ -141,6 +141,39 @@ def get_bb_env(target=None, postconfig=None): else: return bitbake("-e", postconfig=postconfig).output +def get_bb_vars(variables=None, target=None, postconfig=None): + """Get values of multiple bitbake variables""" + bbenv = get_bb_env(target, postconfig=postconfig) + + var_re = re.compile(r'^(export )?(?P<var>[a-zA-Z]\w+)="(?P<value>.*)"$') + unset_re = re.compile(r'^unset (?P<var>[a-zA-Z]\w+)$') + lastline = None + values = {} + for line in bbenv.splitlines(): + match = var_re.match(line) + val = None + if match: + val = match.group('value') + else: + match = unset_re.match(line) + if match: + # Handle [unexport] variables + if lastline.startswith('# "'): + val = lastline.split('"')[1] + if val: + var = match.group('var') + if variables is None: + values[var] = val + else: + if var in variables: + values[var] = val + variables.remove(var) + # Stop after all required variables have been found + if not variables: + break + lastline = line + return values + def get_bb_var(var, target=None, postconfig=None): val = None bbenv = get_bb_env(target, postconfig=postconfig) |