[libvirt] [PATCH 00/18] Make bash completion great again
Martin Kletzander
mkletzan at redhat.com
Thu Jan 11 10:52:23 UTC 2018
On Tue, Jan 02, 2018 at 06:11:53PM +0100, Michal Privoznik wrote:
>Technically, this is a v2 of [1], but this implements the feature from
>different angle and therefore it's a start of new series.
>
>
>What's implemented?
>===================
>Auto completion for both interactive and non-interactive
>virsh/virt-admin.
>
>
>Known limitations
>=================
>Currently, just options completers work. I mean, to bring up list
>of domains you have to:
>
> virsh # start --domain <TAB><TAB>
>
>Doing bare:
>
> virsh # start <TAB><TAB>
>
>brings up list of --options. With the new approach implemented
>here it should be easy to implement this. But that can be saved
>for later.
>
>
>How to test this?
>=================
>
>Interactive completion should work out of the box. Just make sure
>you're connected. Completers don't connect! You certainly don't
>want ssh's 'Password:' prompt show on <TAB><TAB>, do you?
>Non-interactive completers do connect, but in order to avoid any
>password prompts, /dev/stdin is closed before anything else is
>done. In order to test it, just:
>
> libvirt.git $ source tools/bash-completion/vsh
>
>Now, bash completion should work:
>
> libvirt.git $ ./tools/virsh -c qemu:///system start --domain <TAB><TAB>
>
>
>Notes
>=====
>
>As usual, you can find all the patches on my github [2]. I've
>tried to work in all the review suggestions from v1. Due to
>changes in design (reusing parse code instead of duplicating it)
>not all suggestions were possible to work in though.
>
>Michal
>
ACK to all if you fix the two possible NULL problems (04/18 and 08/18).
>1: https://www.redhat.com/archives/libvir-list/2017-November/msg00213.html
>2: https://github.com/zippy2/libvirt/tree/bash_autocomplete_v3 (yeah v3, don't ask)
>
>Michal Privoznik (18):
> vsh: Drop useless check for opts != NULL
> vsh: Drop useless check for cmd != NULL
> vshCommandParse: Don't leak @tkdata
> vshCommandStringParse: Allow retrieving partial result
> vshReadlineParse: Drop code duplication
> vshReadlineParse: Escape returned results if needed
> vshReadlineParse: Use string list
> vshCommandOpt: Allow caller avoiding assert()
> util: Introduce virStringListMerge
> vsh: Fix vshCompleter signature
> vsh: Call vshCmdOptDef completer
> vsh: Prune string list returned by completer
> vsh: Filter --options
> vsh: Introduce complete command
> tools: Provide bash autompletion file
> virsh: Introduce virshDomainNameCompleter
> virsh: Introduce virshDomainInterfaceCompleter
> virt-admin: Introduce vshAdmServerCompleter
>
> configure.ac | 3 +
> libvirt.spec.in | 3 +
> m4/virt-bash-completion.m4 | 74 +++++
> src/libvirt_private.syms | 1 +
> src/util/virstring.c | 36 +++
> src/util/virstring.h | 3 +
> tools/Makefile.am | 40 ++-
> tools/bash-completion/vsh | 67 +++++
> tools/virsh-completer.c | 150 ++++++++++
> tools/virsh-completer.h | 41 +++
> tools/virsh-domain-monitor.c | 33 ++-
> tools/virsh-domain.c | 186 ++++++------
> tools/virsh-snapshot.c | 24 +-
> tools/virsh.c | 5 +-
> tools/virsh.h | 7 +-
> tools/virt-admin-completer.c | 76 +++++
> tools/virt-admin-completer.h | 33 +++
> tools/virt-admin.c | 13 +-
> tools/vsh.c | 663 ++++++++++++++++++++++++++-----------------
> tools/vsh.h | 23 +-
> 20 files changed, 1097 insertions(+), 384 deletions(-)
> create mode 100644 m4/virt-bash-completion.m4
> create mode 100644 tools/bash-completion/vsh
> create mode 100644 tools/virsh-completer.c
> create mode 100644 tools/virsh-completer.h
> create mode 100644 tools/virt-admin-completer.c
> create mode 100644 tools/virt-admin-completer.h
>
>--
>2.13.6
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180111/9274b8c2/attachment-0001.sig>
More information about the libvir-list
mailing list