Starting in libguestfs ≥ 1.21.23-2, bash tab completions of guestfish, guestmount and virt-* tools have been rewritten and greatly improved.
Note you will need to install the libguestfs-bash-completion
package to enable this feature.
You can now tab complete all long options on most tools:
$ virt-df --[tab] --add --domain --human-readable --uuid --connect --format --inodes --verbose --csv --help --one-per-guest --version $ virt-resize --[tab] --align-first --help --no-extra-partition --alignment --ignore --ntfsresize-force --debug --lvexpand --output-format --debug-gc --lv-expand --quiet --delete --LVexpand --resize --dryrun --LV-expand --resize-force --dry-run --machine-readable --shrink --expand --no-copy-boot-loader --version --format --no-expand-content
Where appropriate, the -d
option will now expand to the list of libvirt domains:
# virt-df -d [tab] archlinux20121201x64 f19rawhidex32 f18x64 f19rawhidex64
Finally, guestfish commands are expanded on the command line:
$ guestfish add /tmp/disk : run : list-[tab] list-9p list-events list-md-devices list-devices list-filesystems list-partitions list-disk-labels list-ldm-partitions list-dm-devices list-ldm-volumes
To make this less intrusive, so you can really use it daily, I left the default readline expansions enabled. This means that filenames and so on can continue to be used in every position on the command line, and should mean that bash completions won’t try to be cleverer than the user.
Libguestfs bash completions are also demand-loaded now, so that if you’re not using them, they don’t consume any resources in the shell.