vsh: Add '--dump-help' option for 'self-test' command

The new option dumps the full help outputs for every command so that
it's possible to conveniently check that subsequent refactors will not
impact any of the external functionality.

No man page entry is needed as the command is internal/undocumented.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2024-03-01 23:01:54 +01:00
parent 345f31bc4c
commit 7df38644bc

View File

@ -3351,6 +3351,10 @@ const vshCmdOptDef opts_selftest[] = {
.type = VSH_OT_BOOL, .type = VSH_OT_BOOL,
.help = N_("output the list of options which are missing completers") .help = N_("output the list of options which are missing completers")
}, },
{.name = "dump-help",
.type = VSH_OT_BOOL,
.help = N_("output help for each command")
},
{.name = NULL} {.name = NULL}
}; };
const vshCmdInfo info_selftest[] = { const vshCmdInfo info_selftest[] = {
@ -3369,9 +3373,14 @@ cmdSelfTest(vshControl *ctl, const vshCmd *cmd)
const vshCmdGrp *grp; const vshCmdGrp *grp;
const vshCmdDef *def; const vshCmdDef *def;
bool completers = vshCommandOptBool(cmd, "completers-missing"); bool completers = vshCommandOptBool(cmd, "completers-missing");
bool dumphelp = vshCommandOptBool(cmd, "dump-help");
for (grp = cmdGroups; grp->name; grp++) { for (grp = cmdGroups; grp->name; grp++) {
for (def = grp->commands; def->name; def++) { for (def = grp->commands; def->name; def++) {
if (dumphelp && !def->alias)
vshCmddefHelp(def);
if (vshCmddefCheckInternals(ctl, def, completers) < 0) if (vshCmddefCheckInternals(ctl, def, completers) < 0)
return false; return false;
} }