diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-05-30 10:20:56 +1200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-06-01 12:38:41 +0100 |
commit | c93602c2ac2e1cec8317069075e23ba6c3293fab (patch) | |
tree | 6b2db2b8609fcefb955df06342964a83fd6762a8 /meta/lib/oe | |
parent | fcc2c3c4b3ca08528722442c90acd27e89291405 (diff) | |
download | poky-c93602c2ac2e1cec8317069075e23ba6c3293fab.tar.gz |
lib/oe/recipeutils: split out patch_recipe_lines()
Split out a function from patch_recipe_file() that takes just the lines
as input so we can edit recipe lines in memory. This will be used within
recipetool to ensure we insert new values in the right place.
(From OE-Core rev: d780642f950fb3a9699f466a405a2710d870dd08)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe')
-rw-r--r-- | meta/lib/oe/recipeutils.py | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py index 6c7adb5bdb..ef827550eb 100644 --- a/meta/lib/oe/recipeutils.py +++ b/meta/lib/oe/recipeutils.py | |||
@@ -158,9 +158,8 @@ def split_var_value(value, assignment=True): | |||
158 | return outlist | 158 | return outlist |
159 | 159 | ||
160 | 160 | ||
161 | def patch_recipe_file(fn, values, patch=False, relpath=''): | 161 | def patch_recipe_lines(fromlines, values): |
162 | """Update or insert variable values into a recipe file (assuming you | 162 | """Update or insert variable values into lines from a recipe. |
163 | have already identified the exact file you want to update.) | ||
164 | Note that some manual inspection/intervention may be required | 163 | Note that some manual inspection/intervention may be required |
165 | since this cannot handle all situations. | 164 | since this cannot handle all situations. |
166 | """ | 165 | """ |
@@ -247,8 +246,7 @@ def patch_recipe_file(fn, values, patch=False, relpath=''): | |||
247 | 246 | ||
248 | # First run - establish which values we want to set are already in the file | 247 | # First run - establish which values we want to set are already in the file |
249 | varlist = [re.escape(item) for item in values.keys()] | 248 | varlist = [re.escape(item) for item in values.keys()] |
250 | with open(fn, 'r') as f: | 249 | bb.utils.edit_metadata(fromlines, varlist, patch_recipe_varfunc) |
251 | changed, fromlines = bb.utils.edit_metadata(f, varlist, patch_recipe_varfunc) | ||
252 | # Second run - actually set everything | 250 | # Second run - actually set everything |
253 | modifying = True | 251 | modifying = True |
254 | varlist.extend(recipe_progression_restrs) | 252 | varlist.extend(recipe_progression_restrs) |
@@ -260,6 +258,21 @@ def patch_recipe_file(fn, values, patch=False, relpath=''): | |||
260 | for k in remainingnames.keys(): | 258 | for k in remainingnames.keys(): |
261 | outputvalue(k, tolines) | 259 | outputvalue(k, tolines) |
262 | 260 | ||
261 | return changed, tolines | ||
262 | |||
263 | |||
264 | def patch_recipe_file(fn, values, patch=False, relpath=''): | ||
265 | """Update or insert variable values into a recipe file (assuming you | ||
266 | have already identified the exact file you want to update.) | ||
267 | Note that some manual inspection/intervention may be required | ||
268 | since this cannot handle all situations. | ||
269 | """ | ||
270 | |||
271 | with open(fn, 'r') as f: | ||
272 | fromlines = f.readlines() | ||
273 | |||
274 | _, tolines = patch_recipe_lines(fromlines, values) | ||
275 | |||
263 | if patch: | 276 | if patch: |
264 | relfn = os.path.relpath(fn, relpath) | 277 | relfn = os.path.relpath(fn, relpath) |
265 | diff = difflib.unified_diff(fromlines, tolines, 'a/%s' % relfn, 'b/%s' % relfn) | 278 | diff = difflib.unified_diff(fromlines, tolines, 'a/%s' % relfn, 'b/%s' % relfn) |