Delay the execution of $tool --long-options only when really using its
output.
---
bash/guestfish | 3 +--
bash/guestmount | 3 +--
bash/virt-alignment-scan | 23 ++++++++++++-----------
bash/virt-rescue | 3 +--
bash/virt-resize | 9 +++++----
5 files changed, 20 insertions(+), 21 deletions(-)
diff --git a/bash/guestfish b/bash/guestfish
index 513fbe2..46d7847 100644
--- a/bash/guestfish
+++ b/bash/guestfish
@@ -35,8 +35,6 @@ _guestfish ()
_init_completion -s || return
- longopts="$(guestfish --long-options)"
-
# See if user has specified certain options anywhere on the
# command line before the current word.
while [ $c -lt $COMP_CWORD ]; do
@@ -60,6 +58,7 @@ _guestfish ()
case "$cur" in
--*)
# --options
+ longopts="$(guestfish --long-options)"
COMPREPLY=( $(compgen -W "$longopts" -- "$cur") )
return ;;
*)
diff --git a/bash/guestmount b/bash/guestmount
index 9d91f7a..db79521 100644
--- a/bash/guestmount
+++ b/bash/guestmount
@@ -35,8 +35,6 @@ _guestmount ()
_init_completion -s || return
- longopts="$(guestmount --long-options)"
-
# See if user has specified certain options anywhere on the
# command line before the current word.
while [ $c -lt $COMP_CWORD ]; do
@@ -57,6 +55,7 @@ _guestmount ()
case "$cur" in
--*)
# --options
+ longopts="$(guestmount --long-options)"
COMPREPLY=( $(compgen -W "$longopts" -- "$cur") )
return ;;
*)
diff --git a/bash/virt-alignment-scan b/bash/virt-alignment-scan
index 3c77baf..cef8365 100644
--- a/bash/virt-alignment-scan
+++ b/bash/virt-alignment-scan
@@ -31,7 +31,7 @@ _guestfs_virsh_list ()
_guestfs_virttools ()
{
local cur prev words cword split
- local longopts="$1" flag_ro="$2" doms
+ local longopts tool="$1" flag_ro="$2" doms
_init_completion -s || return
@@ -45,6 +45,7 @@ _guestfs_virttools ()
case "$cur" in
--*)
# --options
+ longopts="$($tool --long-options)"
COMPREPLY=( $(compgen -W "$longopts" -- "$cur") )
return ;;
*)
@@ -55,60 +56,60 @@ _guestfs_virttools ()
_virt_alignment_scan ()
{
- _guestfs_virttools "$(virt-alignment-scan --long-options)" 1
+ _guestfs_virttools "virt-alignment-scan" 1
} &&
complete -o default -F _virt_alignment_scan virt-alignment-scan
_virt_cat ()
{
- _guestfs_virttools "$(virt-cat --long-options)" 1
+ _guestfs_virttools "virt-cat" 1
} &&
complete -o default -F _virt_cat virt-cat
_virt_df ()
{
- _guestfs_virttools "$(virt-df --long-options)" 1
+ _guestfs_virttools "virt-df" 1
} &&
complete -o default -F _virt_df virt-df
_virt_edit ()
{
- _guestfs_virttools "$(virt-edit --long-options)" 0
+ _guestfs_virttools "virt-edit" 0
} &&
complete -o default -F _virt_edit virt-edit
_virt_filesystems ()
{
- _guestfs_virttools "$(virt-filesystems --long-options)" 1
+ _guestfs_virttools "virt-filesystems" 1
} &&
complete -o default -F _virt_filesystems virt-filesystems
_virt_format ()
{
- _guestfs_virttools "$(virt-format --long-options)" 0
+ _guestfs_virttools "virt-format" 0
} &&
complete -o default -F _virt_format virt-format
_virt_inspector ()
{
- _guestfs_virttools "$(virt-inspector --long-options)" 1
+ _guestfs_virttools "virt-inspector" 1
} &&
complete -o default -F _virt_inspector virt-inspector
_virt_ls ()
{
- _guestfs_virttools "$(virt-ls --long-options)" 1
+ _guestfs_virttools "virt-ls" 1
} &&
complete -o default -F _virt_ls virt-ls
_virt_sysprep ()
{
- _guestfs_virttools "$(virt-sysprep --long-options)" 0
+ _guestfs_virttools "virt-sysprep" 0
} &&
complete -o default -F _virt_sysprep virt-sysprep
_virt_log ()
{
- _guestfs_virttools "$(virt-log --long-options)" 1
+ _guestfs_virttools "virt-log" 1
} &&
complete -o default -F _virt_log virt-log
diff --git a/bash/virt-rescue b/bash/virt-rescue
index 7987bb3..bb9ca6d 100644
--- a/bash/virt-rescue
+++ b/bash/virt-rescue
@@ -35,8 +35,6 @@ _virt_rescue ()
_init_completion -s || return
- longopts="$(virt-rescue --long-options)"
-
# See if user has specified certain options anywhere on the
# command line before the current word.
while [ $c -lt $COMP_CWORD ]; do
@@ -57,6 +55,7 @@ _virt_rescue ()
case "$cur" in
--*)
# --options
+ longopts="$(virt-rescue --long-options)"
COMPREPLY=( $(compgen -W "$longopts" -- "$cur") )
return ;;
*)
diff --git a/bash/virt-resize b/bash/virt-resize
index 39ef982..d5ac2f5 100644
--- a/bash/virt-resize
+++ b/bash/virt-resize
@@ -19,13 +19,14 @@
_guestfs_options_only ()
{
local cur prev words cword split
- local longopts="$1"
+ local longopts tool="$1"
_init_completion -s || return
case "$cur" in
--*)
# --options
+ longopts="$($tool --long-options)"
COMPREPLY=( $(compgen -W "$longopts" -- "$cur") )
return ;;
*)
@@ -36,18 +37,18 @@ _guestfs_options_only ()
_virt_builder ()
{
- _guestfs_options_only "$(virt-builder --long-options)"
+ _guestfs_options_only "virt-builder"
} &&
complete -o default -F _virt_builder virt-builder
_virt_resize ()
{
- _guestfs_options_only "$(virt-resize --long-options)"
+ _guestfs_options_only "virt-resize"
} &&
complete -o default -F _virt_resize virt-resize
_virt_sparsify ()
{
- _guestfs_options_only "$(virt-sparsify --long-options)"
+ _guestfs_options_only "virt-sparsify"
} &&
complete -o default -F _virt_sparsify virt-sparsify
--
1.9.3