summaryrefslogtreecommitdiff
path: root/tools/meson-render-jinja2.py
diff options
context:
space:
mode:
authorChristian Brauner <christian.brauner@ubuntu.com>2021-11-05 14:29:53 +0100
committerLuca Boccassi <luca.boccassi@gmail.com>2021-11-08 12:06:48 +0000
commita6d1760024d0884efb343e1c739f303619f7c8b9 (patch)
treec8dbba36a1918327990537b23aefe1b54941fd12 /tools/meson-render-jinja2.py
parentbf47f71c1cd36c2b0eb5aeac4d8bdf58c67f2b33 (diff)
downloadsystemd-a6d1760024d0884efb343e1c739f303619f7c8b9.tar.gz
build: preserve correct mode when generating files via jinja2
When using "capture : true" in custom_target()s the mode of the source file is not preserved when the generated file is not installed and so needs to be tweaked manually. Switch from output capture to creating the target file and copy the permissions from the input file. Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Diffstat (limited to 'tools/meson-render-jinja2.py')
-rwxr-xr-xtools/meson-render-jinja2.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/meson-render-jinja2.py b/tools/meson-render-jinja2.py
index 9a6fc7c31c..0f9fc43124 100755
--- a/tools/meson-render-jinja2.py
+++ b/tools/meson-render-jinja2.py
@@ -2,6 +2,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
import ast
+import os
import re
import sys
@@ -27,4 +28,8 @@ def render(filename, defines):
if __name__ == '__main__':
defines = parse_config_h(sys.argv[1])
- print(render(sys.argv[2], defines))
+ output = render(sys.argv[2], defines)
+ with open(sys.argv[3], 'w') as f:
+ f.write(output)
+ info = os.stat(sys.argv[2])
+ os.chmod(sys.argv[3], info.st_mode)