[libvirt] [v4 0/5] virsh: More intelligent auto-completion
Tomas Meszaros
exo at tty.sk
Tue Sep 10 15:54:25 UTC 2013
This series implements advanced auto-completion for virsh. Using custom option
completers (examples in 3/5, 4/5 and 5/5), it is possible to further complete
any option with defined completer function.
Option completer function should return list of completed names for each desired
option. Using C99 initialization, it is easy to enable specific completer for
any option. For example, when we want domain completer for "start --domain"
option, we write vshDomainCompleter() and along with desired flags, initialize
targeted opts struct.
static const vshCmdOptDef opts_start[] = {
{.name = "domain",
.type = VSH_OT_DATA,
.flags = VSH_OFLAG_REQ,
.help = N_("name of the inactive domain"),
.completer = vshDomainCompleter,
.completer_flags = VIR_CONNECT_LIST_DOMAINS_INACTIVE |
VIR_CONNECT_LIST_DOMAINS_PERSISTENT
},
Auto-completion itself then works like this:
virsh # start --domain <TAB>
domain1 domain2 domainN
virsh # vol-key <TAB>
--help --pool --vol vol1 vol2
---
v4:
* rewritten to use only option completers
v3:
https://www.redhat.com/archives/libvir-list/2013-August/msg01294.html
v2:
https://www.redhat.com/archives/libvir-list/2013-August/msg00992.html
v1:
https://www.redhat.com/archives/libvir-list/2013-August/msg00371.html
Tomas Meszaros (5):
virsh: Add vshCmdCompleter and vshOptCompleter
virsh: Improve readline generators and readline completion
virsh: Add vshDomainCompleter
virsh: Add vshSuspendTargetCompleter
virsh: Add vshRebootShutdownModeCompleter
tools/virsh-domain-monitor.c | 52 +++++--
tools/virsh-domain.c | 310 +++++++++++++++++++++++++++++---------
tools/virsh-snapshot.c | 50 +++++--
tools/virsh.c | 350 +++++++++++++++++++++++++++++++++++++++----
tools/virsh.h | 8 +
5 files changed, 648 insertions(+), 122 deletions(-)
--
1.8.3.1
More information about the libvir-list
mailing list