about summary refs log tree commit diff
path: root/tools/generate-docs-settings-docs.py
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2022-10-04 00:56:46 +0200
committerMichael Biebl <biebl@debian.org>2022-10-04 00:56:46 +0200
commit3612e6355f3f40d264ec4657547761069baa5430 (patch)
tree768e4f5b37b66f540dd7030aa2eaff2ac7bb0168 /tools/generate-docs-settings-docs.py
parent7e9f00a3be8f65535e6620b344443ec4d403212b (diff)
parent6f7fcde10e47d8af865af336becf1fd8a446e62e (diff)
Merge tag 'debian/1.40.0-1' into debian/bullseye-backports
network-manager Debian release 1.40.0-1
Diffstat (limited to 'tools/generate-docs-settings-docs.py')
-rwxr-xr-xtools/generate-docs-settings-docs.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/tools/generate-docs-settings-docs.py b/tools/generate-docs-settings-docs.py
new file mode 100755
index 00000000..307be880
--- /dev/null
+++ b/tools/generate-docs-settings-docs.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+import xml.etree.ElementTree as ET
+import argparse
+import re
+
+###############################################################################
+
+
+def strip_new_lines(desc_string):
+    desc_string = re.sub(r"\n\s*", r" ", desc_string)
+    return desc_string
+
+
+def escape_quotes(desc_string):
+    desc_string = re.sub(r"\"", r"\"", desc_string)
+    return desc_string
+
+
+###############################################################################
+
+
+def main(output_path_str, xml_path_str):
+    xml = ET.parse(xml_path_str).getroot()
+
+    doc = ""
+    doc += "/* Generated file. Do not edit. */\n\n"
+
+    for setting in xml:
+        name_set_upper = setting.attrib["name_upper"]
+
+        for property in setting:
+            name_prop_upper = property.attrib["name_upper"]
+            desc_string = ""
+            desc = property.find("description")
+
+            if desc is not None:
+                desc_string = desc.text
+
+            desc_string = strip_new_lines(desc_string)
+            desc_string = escape_quotes(desc_string)
+            desc_string = desc_string.lstrip(" ")
+
+            doc += "#define DESCRIBE_DOC_NM_SETTING_"
+            doc += name_set_upper
+            doc += "_"
+            doc += name_prop_upper
+            doc += ' N_("'
+            doc += desc_string
+            doc += '")\n'
+
+    file = open(output_path_str, "w")
+    file.write(doc)
+    file.close()
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser()
+    parser.add_argument(
+        "--output",
+        metavar="PATH",
+        help="specify output file",
+        required=True,
+    )
+    parser.add_argument(
+        "--xml",
+        metavar="PATH",
+        help="specify input file",
+        required=True,
+    )
+
+    args = parser.parse_args()
+    main(args.output, args.xml)