mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-09-06 17:14:02 +00:00
docs: in "generate-docs-nm-settings-docs-merge.py" only take properties from first setting
Especially for "nm-settings-docs-nmcli.xml", the first XML to merge is "clients/cli/generate-docs-nm-settings-nmcli.xml". That file is generated with the meta data from nmcli, and it contains all the properties that are supported. Properties from other XML files, that are passed as additional arguments should not be merged. In most cases, there is no difference. It only matters for "ipv6.dad-timeout" and "user.data". For example, "ipv6.dad-timeout" is supported by GObject (part of "libnm/nm-settings-docs-gir.xml"), but not by nmcli. Don't include it in the manual. This also drops the now empty settings "dummy", "user", and "generic".
This commit is contained in:
parent
c2d4e47f71
commit
3c11116c48
|
@ -1590,7 +1590,7 @@ libnm/nm-settings-docs-gir.xml: tools/generate-docs-nm-settings-docs-gir.py libn
|
|||
--output $@
|
||||
|
||||
man/nm-settings-docs-nmcli.xml: clients/cli/generate-docs-nm-settings-nmcli.xml libnm/nm-property-infos-nmcli.xml libnm/nm-settings-docs-gir.xml tools/generate-docs-nm-settings-docs-merge.py
|
||||
$(AM_V_GEN) "$(PYTHON)" $(srcdir)/tools/generate-docs-nm-settings-docs-merge.py $@ $(wordlist 1,3,$^)
|
||||
$(AM_V_GEN) "$(PYTHON)" $(srcdir)/tools/generate-docs-nm-settings-docs-merge.py --only-from-first $@ $(wordlist 1,3,$^)
|
||||
|
||||
man/nm-settings-docs-%.xml: libnm/nm-property-infos-%.xml libnm/nm-settings-docs-gir.xml tools/generate-docs-nm-settings-docs-merge.py
|
||||
$(AM_V_GEN) "$(PYTHON)" $(srcdir)/tools/generate-docs-nm-settings-docs-merge.py $@ $(wordlist 1,2,$^)
|
||||
|
|
|
@ -80,6 +80,7 @@ if enable_introspection
|
|||
python.path(),
|
||||
join_paths(meson.source_root(), 'tools', 'generate-docs-nm-settings-docs-merge.py'),
|
||||
'@OUTPUT@',
|
||||
'--only-from-first',
|
||||
generate_docs_nm_settings_nmcli_xml,
|
||||
nm_property_infos_xml[name],
|
||||
nm_settings_docs_xml_gir,
|
||||
|
|
|
@ -99,13 +99,25 @@ def node_set_attr(dst_node, name, nodes):
|
|||
|
||||
###############################################################################
|
||||
|
||||
if len(sys.argv) < 3:
|
||||
print("%s [OUT_FILE] [SETTING_XML [...]]" % (sys.argv[0]))
|
||||
gl_only_from_first = False
|
||||
|
||||
argv = list(sys.argv[1:])
|
||||
while True:
|
||||
if argv[0] == '--only-from-first':
|
||||
gl_only_from_first = True
|
||||
del argv[0]
|
||||
continue
|
||||
break
|
||||
if len(argv) < 2:
|
||||
print("%s [--only-from-first] [OUT_FILE] [SETTING_XML [...]]" % (sys.argv[0]))
|
||||
exit(1)
|
||||
|
||||
output_xml_file = sys.argv[1]
|
||||
gl_output_xml_file = argv[0]
|
||||
gl_input_files = list(argv[1:])
|
||||
|
||||
xml_roots = list([ET.parse(f).getroot() for f in sys.argv[2:]])
|
||||
###############################################################################
|
||||
|
||||
xml_roots = list([ET.parse(f).getroot() for f in gl_input_files])
|
||||
|
||||
assert(all([root.tag == 'nm-setting-docs' for root in xml_roots]))
|
||||
|
||||
|
@ -117,6 +129,16 @@ for setting_name in iter_keys_of_dicts(settings_roots, key_fcn_setting_name):
|
|||
|
||||
settings = list([d.get(setting_name) for d in settings_roots])
|
||||
|
||||
if gl_only_from_first \
|
||||
and settings[0] is None:
|
||||
continue
|
||||
|
||||
properties = list([node_to_dict(s, 'property', 'name') for s in settings])
|
||||
|
||||
if gl_only_from_first \
|
||||
and not properties[0]:
|
||||
continue
|
||||
|
||||
setting_node = ET.SubElement(root_node, 'setting')
|
||||
|
||||
setting_node.set('name', setting_name)
|
||||
|
@ -124,12 +146,14 @@ for setting_name in iter_keys_of_dicts(settings_roots, key_fcn_setting_name):
|
|||
node_set_attr(setting_node, 'description', settings)
|
||||
node_set_attr(setting_node, 'name_upper', settings)
|
||||
|
||||
properties = list([node_to_dict(s, 'property', 'name') for s in settings])
|
||||
|
||||
for property_name in iter_keys_of_dicts(properties):
|
||||
|
||||
properties_attrs = list([p.get(property_name) for p in properties])
|
||||
|
||||
if gl_only_from_first \
|
||||
and properties_attrs[0] is None:
|
||||
continue
|
||||
|
||||
property_node = ET.SubElement(setting_node, 'property')
|
||||
property_node.set('name', property_name)
|
||||
property_node.set('name_upper', property_name.upper().replace('-', '_'))
|
||||
|
@ -143,4 +167,4 @@ for setting_name in iter_keys_of_dicts(settings_roots, key_fcn_setting_name):
|
|||
node_set_attr(property_node, 'default', properties_attrs)
|
||||
node_set_attr(property_node, 'description', properties_attrs)
|
||||
|
||||
ET.ElementTree(root_node).write(output_xml_file)
|
||||
ET.ElementTree(root_node).write(gl_output_xml_file)
|
||||
|
|
Loading…
Reference in a new issue