vsh: Always assume that command groups are used

None of the clients use the 'command set' approach and other pieces of
code such as the command validator already assume that command groups
are in use. Remove the unused 'command set' stuff.

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-04 15:51:28 +01:00
parent 6abc1273cf
commit ea16531d36
4 changed files with 22 additions and 36 deletions

View File

@@ -878,7 +878,7 @@ main(int argc, char **argv)
virFileActivateDirOverrideForProg(argv[0]); virFileActivateDirOverrideForProg(argv[0]);
if (!vshInit(ctl, cmdGroups, NULL)) if (!vshInit(ctl, cmdGroups))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!virshParseArgv(ctl, argc, argv) || if (!virshParseArgv(ctl, argc, argv) ||

View File

@@ -1594,7 +1594,7 @@ main(int argc, char **argv)
virFileActivateDirOverrideForProg(argv[0]); virFileActivateDirOverrideForProg(argv[0]);
if (!vshInit(ctl, cmdGroups, NULL)) if (!vshInit(ctl, cmdGroups))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!vshAdmParseArgv(ctl, argc, argv) || if (!vshAdmParseArgv(ctl, argc, argv) ||

View File

@@ -56,7 +56,6 @@ vshControl *autoCompleteOpaque;
* and only relies on static data accessible from the user-side callback * and only relies on static data accessible from the user-side callback
*/ */
const vshCmdGrp *cmdGroups; const vshCmdGrp *cmdGroups;
const vshCmdDef *cmdSet;
double double
@@ -572,8 +571,8 @@ vshCommandCheckOpts(vshControl *ctl, const vshCmd *cmd, uint64_t opts_required,
return -1; return -1;
} }
static const vshCmdDef * const vshCmdDef *
vshCmdDefSearchGrp(const char *cmdname) vshCmddefSearch(const char *cmdname)
{ {
const vshCmdGrp *g; const vshCmdGrp *g;
const vshCmdDef *c; const vshCmdDef *c;
@@ -588,28 +587,6 @@ vshCmdDefSearchGrp(const char *cmdname)
return NULL; return NULL;
} }
static const vshCmdDef *
vshCmdDefSearchSet(const char *cmdname)
{
const vshCmdDef *s;
for (s = cmdSet; s->name; s++) {
if (STREQ(s->name, cmdname))
return s;
}
return NULL;
}
const vshCmdDef *
vshCmddefSearch(const char *cmdname)
{
if (cmdGroups)
return vshCmdDefSearchGrp(cmdname);
else
return vshCmdDefSearchSet(cmdname);
}
const vshCmdGrp * const vshCmdGrp *
vshCmdGrpSearch(const char *grpname) vshCmdGrpSearch(const char *grpname)
{ {
@@ -1425,7 +1402,11 @@ vshCommandParse(vshControl *ctl, vshCommandParser *parser, vshCmd **partial)
if (cmd->flags & VSH_CMD_FLAG_ALIAS) { if (cmd->flags & VSH_CMD_FLAG_ALIAS) {
VIR_FREE(tkdata); VIR_FREE(tkdata);
tkdata = g_strdup(cmd->alias); tkdata = g_strdup(cmd->alias);
cmd = vshCmddefSearch(tkdata); if (!(cmd = vshCmddefSearch(tkdata))) {
/* self-test ensures that the alias exists */
vshError(ctl, _("unknown command: '%1$s'"), tkdata);
goto syntaxError;
}
} }
vshCmddefOptParse(cmd, &opts_need_arg, &opts_required); vshCmddefOptParse(cmd, &opts_need_arg, &opts_required);
@@ -1550,7 +1531,10 @@ vshCommandParse(vshControl *ctl, vshCommandParser *parser, vshCmd **partial)
if (STRNEQ(tmpopt->def->name, "help")) if (STRNEQ(tmpopt->def->name, "help"))
continue; continue;
help = vshCmddefSearch("help"); /* the self-test code ensures that help exists */
if (!(help = vshCmddefSearch("help")))
break;
vshCommandOptFree(first); vshCommandOptFree(first);
first = g_new0(vshCmdOpt, 1); first = g_new0(vshCmdOpt, 1);
first->def = help->opts; first->def = help->opts;
@@ -3041,20 +3025,19 @@ vshInitDebug(vshControl *ctl)
* Initialize global data * Initialize global data
*/ */
bool bool
vshInit(vshControl *ctl, const vshCmdGrp *groups, const vshCmdDef *set) vshInit(vshControl *ctl, const vshCmdGrp *groups)
{ {
if (!ctl->hooks) { if (!ctl->hooks) {
vshError(ctl, "%s", _("client hooks cannot be NULL")); vshError(ctl, "%s", _("client hooks cannot be NULL"));
return false; return false;
} }
if (!groups && !set) { if (!groups) {
vshError(ctl, "%s", _("command groups and command set cannot both be NULL")); vshError(ctl, "%s", _("command groups must be non-NULL"));
return false; return false;
} }
cmdGroups = groups; cmdGroups = groups;
cmdSet = set;
if (vshInitDebug(ctl) < 0 || if (vshInitDebug(ctl) < 0 ||
(ctl->imode && vshReadlineInit(ctl) < 0)) (ctl->imode && vshReadlineInit(ctl) < 0))
@@ -3066,8 +3049,8 @@ vshInit(vshControl *ctl, const vshCmdGrp *groups, const vshCmdDef *set)
bool bool
vshInitReload(vshControl *ctl) vshInitReload(vshControl *ctl)
{ {
if (!cmdGroups && !cmdSet) { if (!cmdGroups) {
vshError(ctl, "%s", _("command groups and command are both NULL run vshInit before reloading")); vshError(ctl, "%s", _("command groups is NULL run vshInit before reloading"));
return false; return false;
} }
@@ -3156,6 +3139,9 @@ cmdHelp(vshControl *ctl, const vshCmd *cmd)
if ((def = vshCmddefSearch(name))) { if ((def = vshCmddefSearch(name))) {
if (def->flags & VSH_CMD_FLAG_ALIAS) if (def->flags & VSH_CMD_FLAG_ALIAS)
def = vshCmddefSearch(def->alias); def = vshCmddefSearch(def->alias);
}
if (def) {
return vshCmddefHelp(def); return vshCmddefHelp(def);
} else if ((grp = vshCmdGrpSearch(name))) { } else if ((grp = vshCmdGrpSearch(name))) {
return vshCmdGrpHelp(ctl, grp); return vshCmdGrpHelp(ctl, grp);

View File

@@ -310,7 +310,7 @@ void vshPrint(vshControl *ctl, const char *format, ...)
G_GNUC_PRINTF(2, 3); G_GNUC_PRINTF(2, 3);
void vshPrintExtra(vshControl *ctl, const char *format, ...) void vshPrintExtra(vshControl *ctl, const char *format, ...)
G_GNUC_PRINTF(2, 3); G_GNUC_PRINTF(2, 3);
bool vshInit(vshControl *ctl, const vshCmdGrp *groups, const vshCmdDef *set); bool vshInit(vshControl *ctl, const vshCmdGrp *groups);
bool vshInitReload(vshControl *ctl); bool vshInitReload(vshControl *ctl);
void vshDeinit(vshControl *ctl); void vshDeinit(vshControl *ctl);
void vshDebug(vshControl *ctl, int level, const char *format, ...) void vshDebug(vshControl *ctl, int level, const char *format, ...)