diff --git a/tools/virsh.c b/tools/virsh.c index cb60edcfc9dfdadf0f9edb462617ed1a2a7c22a4..1068447d663f1a971ec32eb7ae92c652123655bb 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -346,44 +346,6 @@ virshConnectionHandler(vshControl *ctl) return NULL; } -/* ----------------- - * Command self-test - * ----------------- */ - -static const vshCmdInfo info_selftest[] = { - {.name = "help", - .data = N_("internal command for testing virsh") - }, - {.name = "desc", - .data = N_("internal use only") - }, - {.name = NULL} -}; - -/* Prints help for every command. - * That runs vshCmddefOptParse which validates - * the per-command options structure. */ -static bool -cmdSelfTest(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) -{ - const vshCmdGrp *grp; - const vshCmdDef *def; - - vshPrint(ctl, "Do not use the following output:\n\n"); - - for (grp = cmdGroups; grp->name; grp++) { - for (def = grp->commands; def->name; def++) { - if (def->flags & VSH_CMD_FLAG_ALIAS) - continue; - - if (!vshCmddefHelp(ctl, def->name)) - return false; - } - } - - return true; -} - /* --------------- * Misc utils @@ -894,18 +856,13 @@ static const vshCmdDef virshCmds[] = { VSH_CMD_HELP, VSH_CMD_PWD, VSH_CMD_QUIT, + VSH_CMD_SELF_TEST, {.name = "connect", .handler = cmdConnect, .opts = opts_connect, .info = info_connect, .flags = VSH_CMD_FLAG_NOCONNECT }, - {.name = "self-test", - .handler = cmdSelfTest, - .opts = NULL, - .info = info_selftest, - .flags = VSH_CMD_FLAG_NOCONNECT | VSH_CMD_FLAG_ALIAS - }, {.name = NULL} }; diff --git a/tools/vsh.c b/tools/vsh.c index be6a073f5678da10df1044bcf3501169f313a6e2..4ee472c3a1d0d96b34a72686aaa33ffa9f70222b 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -3328,3 +3328,41 @@ cmdQuit(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) ctl->imode = false; return true; } + +/* ----------------- + * Command self-test + * ----------------- */ + +const vshCmdInfo info_selftest[] = { + {.name = "help", + .data = N_("internal command for testing virt shells") + }, + {.name = "desc", + .data = N_("internal use only") + }, + {.name = NULL} +}; + +/* Prints help for every command. + * That runs vshCmddefOptParse which validates + * the per-command options structure. */ +bool +cmdSelfTest(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) +{ + const vshCmdGrp *grp; + const vshCmdDef *def; + + vshPrint(ctl, "Do not use the following output:\n\n"); + + for (grp = cmdGroups; grp->name; grp++) { + for (def = grp->commands; def->name; def++) { + if (def->flags & VSH_CMD_FLAG_ALIAS) + continue; + + if (!vshCmddefHelp(ctl, def->name)) + return false; + } + } + + return true; +} diff --git a/tools/vsh.h b/tools/vsh.h index e53910f9afbd9ec8413e56541cd9a49069dc25e8..7f0819118b050ced441984bf123963940c760287 100644 --- a/tools/vsh.h +++ b/tools/vsh.h @@ -376,12 +376,14 @@ extern const vshCmdOptDef opts_echo[]; extern const vshCmdInfo info_echo[]; extern const vshCmdInfo info_pwd[]; extern const vshCmdInfo info_quit[]; +extern const vshCmdInfo info_selftest[]; bool cmdHelp(vshControl *ctl, const vshCmd *cmd); bool cmdCd(vshControl *ctl, const vshCmd *cmd); bool cmdEcho(vshControl *ctl, const vshCmd *cmd); bool cmdPwd(vshControl *ctl, const vshCmd *cmd); bool cmdQuit(vshControl *ctl, const vshCmd *cmd); +bool cmdSelfTest(vshControl *ctl, const vshCmd *cmd); # define VSH_CMD_CD \ { \ @@ -437,6 +439,15 @@ bool cmdQuit(vshControl *ctl, const vshCmd *cmd); .flags = VSH_CMD_FLAG_NOCONNECT \ } +# define VSH_CMD_SELF_TEST \ + { \ + .name = "self-test", \ + .handler = cmdSelfTest, \ + .opts = NULL, \ + .info = info_selftest, \ + .flags = VSH_CMD_FLAG_NOCONNECT | VSH_CMD_FLAG_ALIAS \ + } + /* readline */ char * vshReadline(vshControl *ctl, const char *prompt);