summaryrefslogtreecommitdiffstats
path: root/tools/update-man-rules.py
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2022-03-22 21:51:33 +0100
committerYu Watanabe <watanabe.yu+github@gmail.com>2022-03-23 03:37:35 +0100
commit77d45f1f8302ebe4cb9be680c3f395db839fc864 (patch)
treecd6b544fb6004a175efd7ea96e7aea739a341b56 /tools/update-man-rules.py
parentMerge pull request #22825 from keszybz/assorted-cleanups (diff)
downloadsystemd-77d45f1f8302ebe4cb9be680c3f395db839fc864.tar.xz
systemd-77d45f1f8302ebe4cb9be680c3f395db839fc864.zip
meson: replace sh+find with an internal glob in the python helper
As suggested in https://github.com/systemd/systemd/pull/22810#discussion_r831708052 This makes the whole thing simpler. A glob is passed to helper which then resolves it on its own. This way it's trivial to call the helper with a different set of files for testing.
Diffstat (limited to 'tools/update-man-rules.py')
-rwxr-xr-xtools/update-man-rules.py21
1 files changed, 15 insertions, 6 deletions
diff --git a/tools/update-man-rules.py b/tools/update-man-rules.py
index 31ed91c432..3a8c31dc35 100755
--- a/tools/update-man-rules.py
+++ b/tools/update-man-rules.py
@@ -3,9 +3,10 @@
from __future__ import print_function
import collections
+import glob
import sys
+from pathlib import Path
import pprint
-from os.path import basename
from xml_helper import xml_parse
def man(page, number):
@@ -56,7 +57,8 @@ manpages = ['''
MESON_FOOTER = '''\
]
-# Really, do not edit.'''
+# Really, do not edit.
+'''
def make_mesonfile(rules, dist_files):
# reformat rules as
@@ -76,13 +78,20 @@ def make_mesonfile(rules, dist_files):
return '\n'.join((MESON_HEADER, pprint.pformat(lines)[1:-1], MESON_FOOTER))
if __name__ == '__main__':
- pages = sys.argv[1:]
+ source_glob = sys.argv[1]
+ target = Path(sys.argv[2])
+
+ pages = glob.glob(source_glob)
pages = (p for p in pages
- if basename(p) not in {
+ if Path(p).name not in {
'systemd.directives.xml',
'systemd.index.xml',
'directives-template.xml'})
rules = create_rules(pages)
- dist_files = (basename(p) for p in pages)
- print(make_mesonfile(rules, dist_files))
+ dist_files = (Path(p).name for p in pages)
+ text = make_mesonfile(rules, dist_files)
+
+ tmp = target.with_suffix('.tmp')
+ tmp.write_text(text)
+ tmp.rename(target)