vsh: Require that positional non-argv arguments are required

This is logically enforced by existing checks, thus we can formalize it.

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-05 16:17:21 +01:00
parent c53c064ef2
commit a455220166

View File

@ -329,6 +329,13 @@ vshCmddefCheckInternals(vshControl *ctl,
} }
} }
/* require that positional non-argv options are required */
if (opt->positional && !opt->required && opt->type != VSH_OT_ARGV) {
vshError(ctl, "positional argument '%s' of command '%s' must be required",
opt->name, cmd->name);
return -1;
}
switch (opt->type) { switch (opt->type) {
case VSH_OT_NONE: case VSH_OT_NONE:
vshError(ctl, "invalid type 'NONE' of option '%s' of command '%s'", vshError(ctl, "invalid type 'NONE' of option '%s' of command '%s'",