mirror of
https://git.yoctoproject.org/poky
synced 2026-05-04 22:39:49 +02:00
oeqa.utils.commands: Introduce get_bb_vars()
A new function for getting values of multiple bitbake variables at the same time. (From OE-Core rev: fe3039322e2f846b336ac5af5177e9da27d79695) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
58643b74ee
commit
c9639e6523
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user