mirror of
https://git.yoctoproject.org/poky
synced 2026-04-21 12:32:15 +02:00
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>
This commit is contained in:
committed by
Richard Purdie
parent
c93602c2ac
commit
9f56b98c27
@@ -158,7 +158,7 @@ def split_var_value(value, assignment=True):
|
||||
return outlist
|
||||
|
||||
|
||||
def patch_recipe_lines(fromlines, values):
|
||||
def patch_recipe_lines(fromlines, values, trailing_newline=True):
|
||||
"""Update or insert variable values into lines from a recipe.
|
||||
Note that some manual inspection/intervention may be required
|
||||
since this cannot handle all situations.
|
||||
@@ -166,6 +166,11 @@ def patch_recipe_lines(fromlines, values):
|
||||
|
||||
import bb.utils
|
||||
|
||||
if trailing_newline:
|
||||
newline = '\n'
|
||||
else:
|
||||
newline = ''
|
||||
|
||||
recipe_progression_res = []
|
||||
recipe_progression_restrs = []
|
||||
for item in recipe_progression:
|
||||
@@ -196,7 +201,7 @@ def patch_recipe_lines(fromlines, values):
|
||||
def outputvalue(name, lines, rewindcomments=False):
|
||||
if values[name] is None:
|
||||
return
|
||||
rawtext = '%s = "%s"\n' % (name, values[name])
|
||||
rawtext = '%s = "%s"%s' % (name, values[name], newline)
|
||||
addlines = []
|
||||
if name in nowrap_vars:
|
||||
addlines.append(rawtext)
|
||||
@@ -204,19 +209,19 @@ def patch_recipe_lines(fromlines, values):
|
||||
splitvalue = split_var_value(values[name], assignment=False)
|
||||
if len(splitvalue) > 1:
|
||||
linesplit = ' \\\n' + (' ' * (len(name) + 4))
|
||||
addlines.append('%s = "%s%s"\n' % (name, linesplit.join(splitvalue), linesplit))
|
||||
addlines.append('%s = "%s%s"%s' % (name, linesplit.join(splitvalue), linesplit, newline))
|
||||
else:
|
||||
addlines.append(rawtext)
|
||||
else:
|
||||
wrapped = textwrap.wrap(rawtext)
|
||||
for wrapline in wrapped[:-1]:
|
||||
addlines.append('%s \\\n' % wrapline)
|
||||
addlines.append('%s\n' % wrapped[-1])
|
||||
addlines.append('%s \\%s' % (wrapline, newline))
|
||||
addlines.append('%s%s' % (wrapped[-1], newline))
|
||||
if rewindcomments:
|
||||
# Ensure we insert the lines before any leading comments
|
||||
# (that we'd want to ensure remain leading the next value)
|
||||
for i, ln in reversed(list(enumerate(lines))):
|
||||
if ln[0] != '#':
|
||||
if not ln.startswith('#'):
|
||||
lines[i+1:i+1] = addlines
|
||||
break
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user