mirror of
https://github.com/systemd/systemd.git
synced 2025-03-28 02:50:16 +03:00
meson: adjust whitespace handling in jinja2 rendering
In 6abe882bae1bb12827ef395c60f21ab8bb1bc61b the renderer was made to unconditionally append a newline to output. This works, but is ugly. A nicer solution is to tell jinja2 to not strip the newline in the first place, via keep_trailing_newline=True. It seems that the result is unchanged because all our source files have exactly one trailing newline. Also, enable lstrip_blocks=True. This would cause whitespace on the line before an {%if block to be automatically stripped. It seems reasonable to enable that if trim_blocks=True. Overall, no change is expected, though I didn't test combinations of configurations, so there might be a change in some cases. But now the rules of rendering are more logical, e.g. we should be able to indent nested conditional statements without getting unexpected whitespace in the output.
This commit is contained in:
parent
e814f8b246
commit
a324a8958b
@ -23,7 +23,11 @@ def parse_config_h(filename):
|
||||
|
||||
def render(filename, defines):
|
||||
text = open(filename).read()
|
||||
template = jinja2.Template(text, trim_blocks=True, undefined=jinja2.StrictUndefined)
|
||||
template = jinja2.Template(text,
|
||||
trim_blocks=True,
|
||||
lstrip_blocks=True,
|
||||
keep_trailing_newline=True,
|
||||
undefined=jinja2.StrictUndefined)
|
||||
return template.render(defines)
|
||||
|
||||
if __name__ == '__main__':
|
||||
@ -32,6 +36,5 @@ if __name__ == '__main__':
|
||||
output = render(sys.argv[3], defines)
|
||||
with open(sys.argv[4], 'w') as f:
|
||||
f.write(output)
|
||||
f.write('\n')
|
||||
info = os.stat(sys.argv[3])
|
||||
os.chmod(sys.argv[4], info.st_mode)
|
||||
|
Loading…
x
Reference in New Issue
Block a user