aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2020-11-17 16:22:44 +0700
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2020-11-17 16:23:11 +0700
commit7031ac1dd23592470338ff0fcf7cb52617492e39 (patch)
treee79cc208b41cdecab4c83e859a8691ea9777582e
parentaa718462bf6ff3e741cefd144775476c837dc0af (diff)
vty/command: add 'hidden only' VTY reference generation mode
-rw-r--r--include/osmocom/vty/command.h2
-rw-r--r--src/vty/command.c10
2 files changed, 11 insertions, 1 deletions
diff --git a/include/osmocom/vty/command.h b/include/osmocom/vty/command.h
index b6088482..add57e22 100644
--- a/include/osmocom/vty/command.h
+++ b/include/osmocom/vty/command.h
@@ -464,6 +464,8 @@ enum vty_ref_gen_mode {
VTY_REF_GEN_MODE_DEFAULT = 0,
/*! Expert mode: all commands including hidden, excluding deprecated. */
VTY_REF_GEN_MODE_EXPERT,
+ /*! "Inverse" mode: only hidden commands. */
+ VTY_REF_GEN_MODE_HIDDEN,
};
extern const struct value_string vty_ref_gen_mode_names[];
diff --git a/src/vty/command.c b/src/vty/command.c
index c233aa6a..b38be34e 100644
--- a/src/vty/command.c
+++ b/src/vty/command.c
@@ -897,12 +897,14 @@ static int print_func_stream(void *data, const char *format, ...)
const struct value_string vty_ref_gen_mode_names[] = {
{ VTY_REF_GEN_MODE_DEFAULT, "default" },
{ VTY_REF_GEN_MODE_EXPERT, "expert" },
+ { VTY_REF_GEN_MODE_HIDDEN, "hidden" },
{ 0, NULL }
};
const struct value_string vty_ref_gen_mode_desc[] = {
{ VTY_REF_GEN_MODE_DEFAULT, "all commands except deprecated and hidden" },
{ VTY_REF_GEN_MODE_EXPERT, "all commands including hidden, excluding deprecated" },
+ { VTY_REF_GEN_MODE_HIDDEN, "hidden commands only" },
{ 0, NULL }
};
@@ -914,12 +916,18 @@ const struct value_string vty_ref_gen_mode_desc[] = {
int vty_dump_xml_ref_mode(FILE *stream, enum vty_ref_gen_mode mode)
{
unsigned char gflag_mask;
+ bool match = false;
switch (mode) {
case VTY_REF_GEN_MODE_EXPERT:
/* All commands except deprecated */
gflag_mask = CMD_ATTR_DEPRECATED;
break;
+ case VTY_REF_GEN_MODE_HIDDEN:
+ /* Only hidden commands */
+ gflag_mask = CMD_ATTR_HIDDEN;
+ match = true;
+ break;
case VTY_REF_GEN_MODE_DEFAULT:
default:
/* All commands except deprecated and hidden */
@@ -927,7 +935,7 @@ int vty_dump_xml_ref_mode(FILE *stream, enum vty_ref_gen_mode mode)
break;
}
- return vty_dump_nodes(print_func_stream, stream, "\n", gflag_mask, false);
+ return vty_dump_nodes(print_func_stream, stream, "\n", gflag_mask, match);
}
/*! Print the XML reference of all VTY nodes to the given stream.