summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-06-04 16:53:40 +0200
committerThomas Haller <thaller@redhat.com>2020-06-09 17:06:41 +0200
commitde136fa974202fcdfa9f7269f9573995fb816e59 (patch)
treeb9e724a50c806dadb34f1fbb77dff9fe9654275c
parente7752b2b9bdeaedd533cf3fcaa9f0a0e37b410be (diff)
downloadNetworkManager-th/nm-settings-manual-1.tar.gz
-rw-r--r--.gitignore3
-rw-r--r--Makefile.am44
-rw-r--r--clients/cli/generate-docs-nm-settings-nmcli.c57
-rw-r--r--clients/cli/meson.build38
-rw-r--r--clients/meson.build4
-rw-r--r--libnm/meson.build15
6 files changed, 143 insertions, 18 deletions
diff --git a/.gitignore b/.gitignore
index dec2a8ed46..fc9c203504 100644
--- a/.gitignore
+++ b/.gitignore
@@ -159,6 +159,9 @@ test-*.trs
/libnm/tests/test-remote-settings-client
/libnm/tests/test-secret-agent
+/clients/cli/generate-docs-nm-settings-nmcli
+/clients/cli/generate-docs-nm-settings-nmcli.xml
+
/m4/codeset.m4
/m4/gettext.m4
/m4/glibc2.m4
diff --git a/Makefile.am b/Makefile.am
index 031bd9f12c..f869ed3fa3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1553,6 +1553,7 @@ libnm/libnm.typelib: libnm/libnm.gir
INTROSPECTION_GIRS += libnm/NM-1.0.gir
libnm_noinst_data = \
+ clients/cli/generate-docs-nm-settings-nmcli.xml \
libnm/nm-property-infos-dbus.xml \
libnm/nm-property-infos-ifcfg-rh.xml \
libnm/nm-property-infos-keyfile.xml \
@@ -1564,6 +1565,9 @@ libnm_noinst_data = \
noinst_DATA += $(libnm_noinst_data)
+clients/cli/generate-docs-nm-settings-nmcli.xml: clients/cli/generate-docs-nm-settings-nmcli
+ $(AM_V_GEN) clients/cli/generate-docs-nm-settings-nmcli > $@
+
libnm_docs_sources = $(libnm_core_lib_c_settings_real)
libnm/nm-property-infos-%.xml: libnm/generate-docs-nm-property-infos.pl $(libnm_docs_sources)
@@ -1579,6 +1583,9 @@ libnm/nm-settings-docs-gir.xml: libnm/generate-docs-nm-settings-docs-gir.py libn
--gir $(builddir)/libnm/NM-1.0.gir \
--output $@
+libnm/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 libnm/generate-docs-nm-settings-docs-merge.py
+ $(AM_V_GEN) "$(PYTHON)" $(srcdir)/libnm/generate-docs-nm-settings-docs-merge.py $@ $(wordlist 1,3,$^)
+
libnm/nm-settings-docs-%.xml: libnm/nm-property-infos-%.xml libnm/nm-settings-docs-gir.xml libnm/generate-docs-nm-settings-docs-merge.py
$(AM_V_GEN) "$(PYTHON)" $(srcdir)/libnm/generate-docs-nm-settings-docs-merge.py $@ $(wordlist 1,2,$^)
@@ -4553,6 +4560,43 @@ uninstall_hook += uninstall-hook-nmcli
endif
+###############################################################################
+
+noinst_PROGRAMS += clients/cli/generate-docs-nm-settings-nmcli
+
+clients_cli_generate_docs_nm_settings_nmcli_SOURCES = \
+ clients/cli/generate-docs-nm-settings-nmcli.c \
+ $(NULL)
+
+clients_cli_generate_docs_nm_settings_nmcli_CPPFLAGS = \
+ -I$(srcdir)/clients/common \
+ $(clients_cppflags) \
+ -DG_LOG_DOMAIN=\""nmcli"\" \
+ $(NULL)
+
+clients_cli_generate_docs_nm_settings_nmcli_LDADD = \
+ clients/common/libnmc.la \
+ clients/common/libnmc-base.la \
+ shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \
+ shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \
+ shared/nm-glib-aux/libnm-glib-aux.la \
+ shared/nm-std-aux/libnm-std-aux.la \
+ shared/libcsiphash.la \
+ shared/nm-libnm-aux/libnm-libnm-aux.la \
+ libnm/libnm.la \
+ $(GLIB_LIBS) \
+ $(NULL)
+
+clients_cli_generate_docs_nm_settings_nmcli_LDFLAGS = \
+ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \
+ $(SANITIZER_EXEC_LDFLAGS) \
+ $(NULL)
+
+$(clients_cli_generate_docs_nm_settings_nmcli_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+$(clients_cli_generate_docs_nm_settings_nmcli_OBJECTS): $(libnm_lib_h_pub_mkenums)
+
+###############################################################################
+
EXTRA_DIST += \
clients/cli/nmcli-completion \
clients/cli/meson.build \
diff --git a/clients/cli/generate-docs-nm-settings-nmcli.c b/clients/cli/generate-docs-nm-settings-nmcli.c
new file mode 100644
index 0000000000..8ae5b13e49
--- /dev/null
+++ b/clients/cli/generate-docs-nm-settings-nmcli.c
@@ -0,0 +1,57 @@
+// SPDX-License-Identifier: LGPL-2.1+
+
+#include "nm-default.h"
+
+#include "nm-meta-setting-desc.h"
+
+#define INDENT 4
+
+static char *
+_xml_escape_attribute (const char *value)
+{
+ gs_free char *s = NULL;
+
+ s = g_markup_escape_text (value, -1);
+ return g_strdup_printf ("\"%s\"", s);
+}
+
+static const char *
+_indent_level (guint num_spaces)
+{
+ static const char spaces[] = " ";
+
+ nm_assert (num_spaces < G_N_ELEMENTS (spaces));
+ return &spaces[G_N_ELEMENTS (spaces) - num_spaces - 1];
+}
+
+int
+main (int argc, char *argv[])
+{
+ int i_sett_infos;
+ int i_property;
+
+ g_print ("<nm-setting-docs>\n");
+ for (i_sett_infos = 0; i_sett_infos < G_N_ELEMENTS (nm_meta_setting_infos_editor); i_sett_infos++) {
+ const NMMetaSettingInfoEditor *sett_info = &nm_meta_setting_infos_editor[i_sett_infos];
+ gs_free char *tmp1 = NULL;
+
+ g_print ("%s<setting", _indent_level (INDENT));
+ g_print (" name=%s >\n", tmp1 = _xml_escape_attribute (sett_info->general->setting_name));
+
+ for (i_property = 0; i_property < sett_info->properties_num; i_property++) {
+ const NMMetaPropertyInfo *prop_info = sett_info->properties[i_property];
+ gs_free char *tmp2 = NULL;
+ gs_free char *tmp3 = NULL;
+
+ g_print ("%s<property", _indent_level (2*INDENT));
+ g_print (" name=%s", tmp2 = _xml_escape_attribute (prop_info->property_name));
+ if (prop_info->property_alias)
+ g_print ("\n%salias=%s", _indent_level (2*INDENT + 10), tmp3 = _xml_escape_attribute (prop_info->property_alias));
+ g_print (" />\n");
+ }
+
+ g_print ("%s</setting>\n", _indent_level (INDENT));
+ }
+ g_print ("</nm-setting-docs>\n");
+ return 0;
+}
diff --git a/clients/cli/meson.build b/clients/cli/meson.build
index 8dd05affcc..76596e9bd7 100644
--- a/clients/cli/meson.build
+++ b/clients/cli/meson.build
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: LGPL-2.1+
-name = 'nmcli'
+if enable_nmcli
# FIXME: nmcli-completion should be renamed to nmcli
install_data(
@@ -8,15 +8,8 @@ install_data(
install_dir: join_paths(nm_datadir, 'bash-completion', 'completions'),
)
-deps = [
- libnmc_base_dep,
- libnmc_dep,
- readline_dep,
- libnm_libnm_aux_dep,
-]
-
executable(
- name,
+ 'nmcli',
files(
'agent.c',
'common.c',
@@ -28,9 +21,32 @@ executable(
'settings.c',
'utils.c',
),
- dependencies: deps,
- c_args: clients_c_flags + ['-DG_LOG_DOMAIN="@0@"'.format(name)],
+ dependencies: [
+ libnmc_base_dep,
+ libnmc_dep,
+ readline_dep,
+ libnm_libnm_aux_dep,
+ ],
+ c_args: clients_c_flags + ['-DG_LOG_DOMAIN="@0@"'.format('nmcli')],
link_args: ldflags_linker_script_binary,
link_depends: linker_script_binary,
install: true,
)
+
+endif
+
+executable(
+ 'generate-docs-nm-settings-nmcli',
+ files(
+ 'generate-docs-nm-settings-nmcli.c',
+ ),
+ dependencies: [
+ libnmc_base_dep,
+ libnmc_dep,
+ libnm_libnm_aux_dep,
+ ],
+
+ c_args: clients_c_flags + ['-DG_LOG_DOMAIN="@0@"'.format('nmcli')],
+ link_args: ldflags_linker_script_binary,
+ link_depends: linker_script_binary,
+)
diff --git a/clients/meson.build b/clients/meson.build
index 5e6dd6a4c8..3bd406f128 100644
--- a/clients/meson.build
+++ b/clients/meson.build
@@ -20,9 +20,7 @@ executable(
subdir('common')
-if enable_nmcli
- subdir('cli')
-endif
+subdir('cli')
if enable_nmtui
subdir('tui')
diff --git a/libnm/meson.build b/libnm/meson.build
index b0d4e9f876..9b69ebe5ba 100644
--- a/libnm/meson.build
+++ b/libnm/meson.build
@@ -293,17 +293,24 @@ if enable_introspection
)
foreach name: ['dbus', 'nmcli']
+ cmdline_args = [
+ nm_property_infos_xml[name],
+ nm_settings_docs_xml_gir,
+ ]
+ extra_input = [ ]
+ if name == 'nmcli'
+ extra_input = [ generate_docs_nm_settings_nmcli_xml ]
+ cmdline_args = [ generate_docs_nm_settings_nmcli_xml ] + cmdnline_args
+ endif
t = custom_target(
'nm-settings-docs-' + name + '.xml',
- input: [nm_settings_docs_xml_gir, nm_property_infos_xml[name]],
+ input: extra_input + [nm_settings_docs_xml_gir, nm_property_infos_xml[name]],
output: 'nm-settings-docs-' + name + '.xml',
command: [
python.path(),
join_paths(meson.current_source_dir(), 'generate-docs-nm-settings-docs-merge.py'),
'@OUTPUT@',
- nm_property_infos_xml[name],
- nm_settings_docs_xml_gir,
- ],
+ ] + cmdline_args,
depends: libnm_gir,
)
if name == 'dbus'