about summary refs log tree commit diff
path: root/tools/generate-docs-nm-property-infos.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/generate-docs-nm-property-infos.py')
-rwxr-xr-xtools/generate-docs-nm-property-infos.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/tools/generate-docs-nm-property-infos.py b/tools/generate-docs-nm-property-infos.py
index 58ad751f..d7e3c8c2 100755
--- a/tools/generate-docs-nm-property-infos.py
+++ b/tools/generate-docs-nm-property-infos.py
@@ -116,7 +116,7 @@ def get_file_infos(source_files):
 
 
 KEYWORD_XML_TYPE_NESTED = "nested"
-KEYWORD_XML_TYPE_NODE = "node"
+KEYWORD_XML_TYPE_ELEM = "elem"
 KEYWORD_XML_TYPE_ATTR = "attr"
 
 keywords = collections.OrderedDict(
@@ -127,7 +127,7 @@ keywords = collections.OrderedDict(
         ("values", KEYWORD_XML_TYPE_ATTR),
         ("default", KEYWORD_XML_TYPE_ATTR),
         ("example", KEYWORD_XML_TYPE_ATTR),
-        ("description", KEYWORD_XML_TYPE_ATTR),
+        ("description", KEYWORD_XML_TYPE_ELEM),
         ("description-docbook", KEYWORD_XML_TYPE_NESTED),
     ]
 )
@@ -163,7 +163,7 @@ def write_data(tag, setting_node, line_no, parsed_data):
             # Set as XML nodes. The input data is XML itself.
             des = ET.fromstring("<%s>%s</%s>" % (k, v, k))
             property_node.append(des)
-        elif xmltype == KEYWORD_XML_TYPE_NODE:
+        elif xmltype == KEYWORD_XML_TYPE_ELEM:
             node = ET.SubElement(property_node, k)
             node.text = v
         elif xmltype == KEYWORD_XML_TYPE_ATTR:
@@ -171,6 +171,23 @@ def write_data(tag, setting_node, line_no, parsed_data):
         else:
             assert False
 
+    if (
+        parsed_data.get("description", None) is not None
+        and parsed_data.get("description-docbook", None) is None
+    ):
+        # we have a description, but no docbook. Generate one.
+        node = ET.SubElement(property_node, "description-docbook")
+        for l in re.split("\n", parsed_data["description"]):
+            paragraph = ET.SubElement(node, "para")
+            paragraph.text = l
+    elif (
+        parsed_data.get("description-docbook", None) is not None
+        and parsed_data.get("description", None) is None
+    ):
+        raise Exception(
+            'Invalid configuration. When specifying "description-docbook:" there MUST be also a  "description:"'
+        )
+
 
 kwd_first_line_re = re.compile(r"^ *\* ([-a-z0-9]+): (.*)$")
 kwd_more_line_re = re.compile(r"^ *\*( *)(.*?)\s*$")