diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-05-30 10:20:57 +1200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-06-01 12:38:41 +0100 |
commit | 9f56b98c27cc33fab3420e7a6e2cfb0626dc0976 (patch) | |
tree | 6e510d37963d714872f470041431ca3f6d8a875b | |
parent | c93602c2ac2e1cec8317069075e23ba6c3293fab (diff) | |
download | poky-9f56b98c27cc33fab3420e7a6e2cfb0626dc0976.tar.gz |
lib/oe/recipeutils: patch_recipe_lines: allow omitting trailing newlines
This function was assuming that what you wanted was that output lines
had trailing newline characters. If you're just outputting each line
verbatim to a text file then that's fine, but sometimes you start with
the assumption that the lines don't have trailing newlines; thus we
shouldn't allow for the possibility that the caller doesn't want them
and add a parameter to control it.
(From OE-Core rev: fb2bb509ff5c7bd71b41a1dcba3b1bff1d18cf5d)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/lib/oe/recipeutils.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py index ef827550eb..b9f6ada4d6 100644 --- a/meta/lib/oe/recipeutils.py +++ b/meta/lib/oe/recipeutils.py | |||
@@ -158,7 +158,7 @@ def split_var_value(value, assignment=True): | |||
158 | return outlist | 158 | return outlist |
159 | 159 | ||
160 | 160 | ||
161 | def patch_recipe_lines(fromlines, values): | 161 | def patch_recipe_lines(fromlines, values, trailing_newline=True): |
162 | """Update or insert variable values into lines from a recipe. | 162 | """Update or insert variable values into lines from a recipe. |
163 | Note that some manual inspection/intervention may be required | 163 | Note that some manual inspection/intervention may be required |
164 | since this cannot handle all situations. | 164 | since this cannot handle all situations. |
@@ -166,6 +166,11 @@ def patch_recipe_lines(fromlines, values): | |||
166 | 166 | ||
167 | import bb.utils | 167 | import bb.utils |
168 | 168 | ||
169 | if trailing_newline: | ||
170 | newline = '\n' | ||
171 | else: | ||
172 | newline = '' | ||
173 | |||
169 | recipe_progression_res = [] | 174 | recipe_progression_res = [] |
170 | recipe_progression_restrs = [] | 175 | recipe_progression_restrs = [] |
171 | for item in recipe_progression: | 176 | for item in recipe_progression: |
@@ -196,7 +201,7 @@ def patch_recipe_lines(fromlines, values): | |||
196 | def outputvalue(name, lines, rewindcomments=False): | 201 | def outputvalue(name, lines, rewindcomments=False): |
197 | if values[name] is None: | 202 | if values[name] is None: |
198 | return | 203 | return |
199 | rawtext = '%s = "%s"\n' % (name, values[name]) | 204 | rawtext = '%s = "%s"%s' % (name, values[name], newline) |
200 | addlines = [] | 205 | addlines = [] |
201 | if name in nowrap_vars: | 206 | if name in nowrap_vars: |
202 | addlines.append(rawtext) | 207 | addlines.append(rawtext) |
@@ -204,19 +209,19 @@ def patch_recipe_lines(fromlines, values): | |||
204 | splitvalue = split_var_value(values[name], assignment=False) | 209 | splitvalue = split_var_value(values[name], assignment=False) |
205 | if len(splitvalue) > 1: | 210 | if len(splitvalue) > 1: |
206 | linesplit = ' \\\n' + (' ' * (len(name) + 4)) | 211 | linesplit = ' \\\n' + (' ' * (len(name) + 4)) |
207 | addlines.append('%s = "%s%s"\n' % (name, linesplit.join(splitvalue), linesplit)) | 212 | addlines.append('%s = "%s%s"%s' % (name, linesplit.join(splitvalue), linesplit, newline)) |
208 | else: | 213 | else: |
209 | addlines.append(rawtext) | 214 | addlines.append(rawtext) |
210 | else: | 215 | else: |
211 | wrapped = textwrap.wrap(rawtext) | 216 | wrapped = textwrap.wrap(rawtext) |
212 | for wrapline in wrapped[:-1]: | 217 | for wrapline in wrapped[:-1]: |
213 | addlines.append('%s \\\n' % wrapline) | 218 | addlines.append('%s \\%s' % (wrapline, newline)) |
214 | addlines.append('%s\n' % wrapped[-1]) | 219 | addlines.append('%s%s' % (wrapped[-1], newline)) |
215 | if rewindcomments: | 220 | if rewindcomments: |
216 | # Ensure we insert the lines before any leading comments | 221 | # Ensure we insert the lines before any leading comments |
217 | # (that we'd want to ensure remain leading the next value) | 222 | # (that we'd want to ensure remain leading the next value) |
218 | for i, ln in reversed(list(enumerate(lines))): | 223 | for i, ln in reversed(list(enumerate(lines))): |
219 | if ln[0] != '#': | 224 | if not ln.startswith('#'): |
220 | lines[i+1:i+1] = addlines | 225 | lines[i+1:i+1] = addlines |
221 | break | 226 | break |
222 | else: | 227 | else: |