From 7031ac1dd23592470338ff0fcf7cb52617492e39 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Tue, 17 Nov 2020 16:22:44 +0700 Subject: vty/command: add 'hidden only' VTY reference generation mode Change-Id: I511ce26350cd04bb0f66d130b5286cab84f16df2 Related: SYS#4910 --- include/osmocom/vty/command.h | 2 ++ src/vty/command.c | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) 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. -- cgit v1.2.3