diff options
| -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): | |||
| 141 | else: | 141 | else: |
| 142 | return bitbake("-e", postconfig=postconfig).output | 142 | return bitbake("-e", postconfig=postconfig).output |
| 143 | 143 | ||
| 144 | def get_bb_vars(variables=None, target=None, postconfig=None): | ||
| 145 | """Get values of multiple bitbake variables""" | ||
| 146 | bbenv = get_bb_env(target, postconfig=postconfig) | ||
| 147 | |||
| 148 | var_re = re.compile(r'^(export )?(?P<var>[a-zA-Z]\w+)="(?P<value>.*)"$') | ||
| 149 | unset_re = re.compile(r'^unset (?P<var>[a-zA-Z]\w+)$') | ||
| 150 | lastline = None | ||
| 151 | values = {} | ||
| 152 | for line in bbenv.splitlines(): | ||
| 153 | match = var_re.match(line) | ||
| 154 | val = None | ||
| 155 | if match: | ||
| 156 | val = match.group('value') | ||
| 157 | else: | ||
| 158 | match = unset_re.match(line) | ||
| 159 | if match: | ||
| 160 | # Handle [unexport] variables | ||
| 161 | if lastline.startswith('# "'): | ||
| 162 | val = lastline.split('"')[1] | ||
| 163 | if val: | ||
| 164 | var = match.group('var') | ||
| 165 | if variables is None: | ||
| 166 | values[var] = val | ||
| 167 | else: | ||
| 168 | if var in variables: | ||
| 169 | values[var] = val | ||
| 170 | variables.remove(var) | ||
| 171 | # Stop after all required variables have been found | ||
| 172 | if not variables: | ||
| 173 | break | ||
| 174 | lastline = line | ||
| 175 | return values | ||
| 176 | |||
| 144 | def get_bb_var(var, target=None, postconfig=None): | 177 | def get_bb_var(var, target=None, postconfig=None): |
| 145 | val = None | 178 | val = None |
| 146 | bbenv = get_bb_env(target, postconfig=postconfig) | 179 | bbenv = get_bb_env(target, postconfig=postconfig) |
