From: Amneesh Singh Date: Sat, 2 Apr 2022 10:31:46 +0000 (+0530) Subject: virsh: Provide completer for CPU architectures X-Git-Tag: v8.3.0-rc1~174 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4f0480a11cd6a9b3b0b17598a6155641333b32ea;p=thirdparty%2Flibvirt.git virsh: Provide completer for CPU architectures Related: https://gitlab.com/libvirt/libvirt/-/issues/9 Signed-off-by: Amneesh Singh Signed-off-by: Michal Privoznik Reviewed-by: Michal Privoznik --- diff --git a/tools/virsh-completer-host.c b/tools/virsh-completer-host.c index 2da51012d9..68bc6cfe25 100644 --- a/tools/virsh-completer-host.c +++ b/tools/virsh-completer-host.c @@ -28,6 +28,7 @@ #include "virutil.h" #include "virsh-host.h" #include "conf/domain_conf.h" +#include "virarch.h" static char * virshPagesizeNodeToString(xmlNodePtr node) @@ -193,3 +194,15 @@ virshDomainVirtTypeCompleter(vshControl *ctl G_GNUC_UNUSED, return virshEnumComplete(VIR_DOMAIN_VIRT_LAST, virDomainVirtTypeToString); } + + +char ** +virshArchCompleter(vshControl *ctl G_GNUC_UNUSED, + const vshCmd *cmd G_GNUC_UNUSED, + unsigned int flags) +{ + virCheckFlags(0, NULL); + + return virshEnumComplete(VIR_ARCH_LAST, + (const char *(*)(int))virArchToString); +} diff --git a/tools/virsh-completer-host.h b/tools/virsh-completer-host.h index 11b2d1ae2b..b182661cde 100644 --- a/tools/virsh-completer-host.h +++ b/tools/virsh-completer-host.h @@ -46,3 +46,8 @@ char ** virshDomainVirtTypeCompleter(vshControl *ctl, const vshCmd *cmd, unsigned int flags); + +char ** +virshArchCompleter(vshControl *ctl, + const vshCmd *cmd, + unsigned int flags); diff --git a/tools/virsh-host.c b/tools/virsh-host.c index 738265a69b..ead966b500 100644 --- a/tools/virsh-host.c +++ b/tools/virsh-host.c @@ -86,6 +86,7 @@ static const vshCmdOptDef opts_domcapabilities[] = { }, {.name = "arch", .type = VSH_OT_STRING, + .completer = virshArchCompleter, .help = N_("domain architecture (/domain/os/type/@arch)"), }, {.name = "machine", @@ -1312,6 +1313,7 @@ static const vshCmdInfo info_cpu_models[] = { static const vshCmdOptDef opts_cpu_models[] = { {.name = "arch", .type = VSH_OT_DATA, + .completer = virshArchCompleter, .flags = VSH_OFLAG_REQ, .help = N_("architecture") }, @@ -1588,6 +1590,7 @@ static const vshCmdOptDef opts_hypervisor_cpu_compare[] = { }, {.name = "arch", .type = VSH_OT_STRING, + .completer = virshArchCompleter, .help = N_("CPU architecture (/domain/os/type/@arch)"), }, {.name = "machine", @@ -1698,6 +1701,7 @@ static const vshCmdOptDef opts_hypervisor_cpu_baseline[] = { }, {.name = "arch", .type = VSH_OT_STRING, + .completer = virshArchCompleter, .help = N_("CPU architecture (/domain/os/type/@arch)"), }, {.name = "machine",