mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
Use new-style demand-loaded bash-completion scripts.
This commit is contained in:
9
.gitignore
vendored
9
.gitignore
vendored
@@ -45,6 +45,15 @@ Makefile.in
|
|||||||
/appliance/stamp-supermin
|
/appliance/stamp-supermin
|
||||||
/appliance/supermin.d
|
/appliance/supermin.d
|
||||||
/autom4te.cache
|
/autom4te.cache
|
||||||
|
/bash/virt-cat
|
||||||
|
/bash/virt-df
|
||||||
|
/bash/virt-edit
|
||||||
|
/bash/virt-filesystems
|
||||||
|
/bash/virt-format
|
||||||
|
/bash/virt-inspector
|
||||||
|
/bash/virt-ls
|
||||||
|
/bash/virt-sysprep
|
||||||
|
/bash/virt-sparsify
|
||||||
/build-aux
|
/build-aux
|
||||||
/cat/stamp-virt-*.pod
|
/cat/stamp-virt-*.pod
|
||||||
/cat/virt-cat
|
/cat/virt-cat
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ SUBDIRS += fish
|
|||||||
# virt-tools in C.
|
# virt-tools in C.
|
||||||
SUBDIRS += align cat df edit format inspector rescue
|
SUBDIRS += align cat df edit format inspector rescue
|
||||||
|
|
||||||
|
# bash-completion
|
||||||
|
SUBDIRS += bash
|
||||||
|
|
||||||
# Language bindings.
|
# Language bindings.
|
||||||
if HAVE_PERL
|
if HAVE_PERL
|
||||||
SUBDIRS += perl perl/examples
|
SUBDIRS += perl perl/examples
|
||||||
|
|||||||
2
README
2
README
@@ -207,6 +207,8 @@ The full requirements are described below.
|
|||||||
| XML::XPath::XMLParser | O | Perl module used by some virt-* tools. |
|
| XML::XPath::XMLParser | O | Perl module used by some virt-* tools. |
|
||||||
+--------------+-------------+---+-----------------------------------------+
|
+--------------+-------------+---+-----------------------------------------+
|
||||||
| perl-libintl | | O | Perl module for localization. |
|
| perl-libintl | | O | Perl module for localization. |
|
||||||
|
+--------------+-------------+---+-----------------------------------------+
|
||||||
|
| bash-completion | O | For tab-completion of commands in bash. |
|
||||||
+==============+=============+===+=========================================+
|
+==============+=============+===+=========================================+
|
||||||
R = Required
|
R = Required
|
||||||
O = Optional
|
O = Optional
|
||||||
|
|||||||
68
bash/Makefile.am
Normal file
68
bash/Makefile.am
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
# libguestfs
|
||||||
|
# Copyright (C) 2013 Red Hat Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
include $(top_srcdir)/subdir-rules.mk
|
||||||
|
|
||||||
|
scripts = \
|
||||||
|
guestfish \
|
||||||
|
guestmount \
|
||||||
|
virt-alignment-scan \
|
||||||
|
virt-cat \
|
||||||
|
virt-df \
|
||||||
|
virt-edit \
|
||||||
|
virt-filesystems \
|
||||||
|
virt-format \
|
||||||
|
virt-inspector \
|
||||||
|
virt-ls \
|
||||||
|
virt-rescue \
|
||||||
|
virt-resize \
|
||||||
|
virt-sparsify \
|
||||||
|
virt-sysprep
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
README \
|
||||||
|
$(scripts)
|
||||||
|
|
||||||
|
# Some of the scripts are simply symbolic links.
|
||||||
|
virt-cat:
|
||||||
|
ln -sf virt-alignment-scan $@
|
||||||
|
virt-df:
|
||||||
|
ln -sf virt-alignment-scan $@
|
||||||
|
virt-edit:
|
||||||
|
ln -sf virt-alignment-scan $@
|
||||||
|
virt-filesystems:
|
||||||
|
ln -sf virt-alignment-scan $@
|
||||||
|
virt-format:
|
||||||
|
ln -sf virt-alignment-scan $@
|
||||||
|
virt-inspector:
|
||||||
|
ln -sf virt-alignment-scan $@
|
||||||
|
virt-ls:
|
||||||
|
ln -sf virt-alignment-scan $@
|
||||||
|
virt-sysprep:
|
||||||
|
ln -sf virt-alignment-scan $@
|
||||||
|
|
||||||
|
virt-sparsify:
|
||||||
|
ln -sf virt-resize $@
|
||||||
|
|
||||||
|
if HAVE_BASH_COMPLETION
|
||||||
|
|
||||||
|
# Bash completion script.
|
||||||
|
|
||||||
|
bashcompletiondir = $(BASH_COMPLETIONS_DIR)
|
||||||
|
bashcompletion_DATA = $(scripts)
|
||||||
|
|
||||||
|
endif
|
||||||
3
bash/README
Normal file
3
bash/README
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
This directory contains the scripts for tab-completing commands in
|
||||||
|
bash. Note these new-style demand-loaded scripts require
|
||||||
|
'bash-completion' >= 1.99.
|
||||||
72
bash/guestfish
Normal file
72
bash/guestfish
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
# guestfish bash completion script -*- shell-script -*-
|
||||||
|
# Copyright (C) 2010-2013 Red Hat Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
# List all local libvirt domains.
|
||||||
|
_guestfs_virsh_list ()
|
||||||
|
{
|
||||||
|
local flag_ro=$1 flags
|
||||||
|
|
||||||
|
if [ "$flag_ro" -eq 1 ]; then
|
||||||
|
flags="--all"
|
||||||
|
else
|
||||||
|
flags="--inactive"
|
||||||
|
fi
|
||||||
|
virsh list $flags | head -n -1 | tail -n +3 | awk '{print $2}'
|
||||||
|
}
|
||||||
|
|
||||||
|
_guestfish ()
|
||||||
|
{
|
||||||
|
local cur prev words cword split
|
||||||
|
local longopts flag_ro=0 c=1 word cmds doms
|
||||||
|
|
||||||
|
_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
|
||||||
|
word="${COMP_WORDS[c]}"
|
||||||
|
case "$word" in
|
||||||
|
-r|--ro) flag_ro=1 ;;
|
||||||
|
esac
|
||||||
|
c=$((++c))
|
||||||
|
done
|
||||||
|
|
||||||
|
case "$prev" in
|
||||||
|
-a|--add)
|
||||||
|
COMPREPLY=( $(compgen "$cur") )
|
||||||
|
return ;;
|
||||||
|
-d|--domain)
|
||||||
|
doms=$(_guestfs_virsh_list "$flag_ro")
|
||||||
|
COMPREPLY=( $(compgen -W "$doms" -- "$cur") )
|
||||||
|
return ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$cur" in
|
||||||
|
--*)
|
||||||
|
# --options
|
||||||
|
COMPREPLY=( $(compgen -W "$longopts" -- "$cur") )
|
||||||
|
return ;;
|
||||||
|
*)
|
||||||
|
# Might be a guestfish command.
|
||||||
|
cmds=$(guestfish -h| head -n -1 | tail -n +2 | awk '{print $1}')
|
||||||
|
COMPREPLY=( $(compgen -W "$cmds" -- "$cur") )
|
||||||
|
return ;;
|
||||||
|
esac
|
||||||
|
} &&
|
||||||
|
complete -o default -F _guestfish guestfish
|
||||||
67
bash/guestmount
Normal file
67
bash/guestmount
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# guestmount bash completion script -*- shell-script -*-
|
||||||
|
# Copyright (C) 2010-2013 Red Hat Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
# List all local libvirt domains.
|
||||||
|
_guestfs_virsh_list ()
|
||||||
|
{
|
||||||
|
local flag_ro=$1 flags
|
||||||
|
|
||||||
|
if [ "$flag_ro" -eq 1 ]; then
|
||||||
|
flags="--all"
|
||||||
|
else
|
||||||
|
flags="--inactive"
|
||||||
|
fi
|
||||||
|
virsh list $flags | head -n -1 | tail -n +3 | awk '{print $2}'
|
||||||
|
}
|
||||||
|
|
||||||
|
_guestmount ()
|
||||||
|
{
|
||||||
|
local cur prev words cword split
|
||||||
|
local longopts flag_ro=0 c=1 word doms
|
||||||
|
|
||||||
|
_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
|
||||||
|
word="${COMP_WORDS[c]}"
|
||||||
|
case "$word" in
|
||||||
|
-r|--ro) flag_ro=1 ;;
|
||||||
|
esac
|
||||||
|
c=$((++c))
|
||||||
|
done
|
||||||
|
|
||||||
|
case "$prev" in
|
||||||
|
-d|--domain)
|
||||||
|
doms=$(_guestfs_virsh_list "$flag_ro")
|
||||||
|
COMPREPLY=( $(compgen -W "$doms" -- "$cur") )
|
||||||
|
return ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$cur" in
|
||||||
|
--*)
|
||||||
|
# --options
|
||||||
|
COMPREPLY=( $(compgen -W "$longopts" -- "$cur") )
|
||||||
|
return ;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=( $(compgen "$cur") )
|
||||||
|
return ;;
|
||||||
|
esac
|
||||||
|
} &&
|
||||||
|
complete -o default -F _guestmount guestmount
|
||||||
108
bash/virt-alignment-scan
Normal file
108
bash/virt-alignment-scan
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
# virt-tools bash completion script -*- shell-script -*-
|
||||||
|
# Copyright (C) 2010-2013 Red Hat Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
# List all local libvirt domains.
|
||||||
|
_guestfs_virsh_list ()
|
||||||
|
{
|
||||||
|
local flag_ro=$1 flags
|
||||||
|
|
||||||
|
if [ "$flag_ro" -eq 1 ]; then
|
||||||
|
flags="--all"
|
||||||
|
else
|
||||||
|
flags="--inactive"
|
||||||
|
fi
|
||||||
|
virsh list $flags | head -n -1 | tail -n +3 | awk '{print $2}'
|
||||||
|
}
|
||||||
|
|
||||||
|
_guestfs_virttools ()
|
||||||
|
{
|
||||||
|
local cur prev words cword split
|
||||||
|
local longopts="$1" flag_ro="$2" doms
|
||||||
|
|
||||||
|
_init_completion -s || return
|
||||||
|
|
||||||
|
case "$prev" in
|
||||||
|
-d|--domain)
|
||||||
|
doms=$(_guestfs_virsh_list "$flag_ro")
|
||||||
|
COMPREPLY=( $(compgen -W "$doms" -- "$cur") )
|
||||||
|
return ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$cur" in
|
||||||
|
--*)
|
||||||
|
# --options
|
||||||
|
COMPREPLY=( $(compgen -W "$longopts" -- "$cur") )
|
||||||
|
return ;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=( $(compgen "$cur") )
|
||||||
|
return ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
_virt_alignment_scan ()
|
||||||
|
{
|
||||||
|
_guestfs_virttools "$(virt-alignment-scan --long-options)" 1
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_alignment_scan virt-alignment-scan
|
||||||
|
|
||||||
|
_virt_cat ()
|
||||||
|
{
|
||||||
|
_guestfs_virttools "$(virt-cat --long-options)" 1
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_cat virt-cat
|
||||||
|
|
||||||
|
_virt_df ()
|
||||||
|
{
|
||||||
|
_guestfs_virttools "$(virt-df --long-options)" 1
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_df virt-df
|
||||||
|
|
||||||
|
_virt_edit ()
|
||||||
|
{
|
||||||
|
_guestfs_virttools "$(virt-edit --long-options)" 0
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_edit virt-edit
|
||||||
|
|
||||||
|
_virt_filesystems ()
|
||||||
|
{
|
||||||
|
_guestfs_virttools "$(virt-filesystems --long-options)" 1
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_filesystems virt-filesystems
|
||||||
|
|
||||||
|
_virt_format ()
|
||||||
|
{
|
||||||
|
_guestfs_virttools "$(virt-format --long-options)" 0
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_format virt-format
|
||||||
|
|
||||||
|
_virt_inspector ()
|
||||||
|
{
|
||||||
|
_guestfs_virttools "$(virt-inspector --long-options)" 1
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_inspector virt-inspector
|
||||||
|
|
||||||
|
_virt_ls ()
|
||||||
|
{
|
||||||
|
_guestfs_virttools "$(virt-ls --long-options)" 1
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_ls virt-ls
|
||||||
|
|
||||||
|
_virt_sysprep ()
|
||||||
|
{
|
||||||
|
_guestfs_virttools "$(virt-sysprep --long-options)" 0
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_sysprep virt-sysprep
|
||||||
67
bash/virt-rescue
Normal file
67
bash/virt-rescue
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# virt-rescue bash completion script -*- shell-script -*-
|
||||||
|
# Copyright (C) 2010-2013 Red Hat Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
# List all local libvirt domains.
|
||||||
|
_guestfs_virsh_list ()
|
||||||
|
{
|
||||||
|
local flag_ro=$1 flags
|
||||||
|
|
||||||
|
if [ "$flag_ro" -eq 1 ]; then
|
||||||
|
flags="--all"
|
||||||
|
else
|
||||||
|
flags="--inactive"
|
||||||
|
fi
|
||||||
|
virsh list $flags | head -n -1 | tail -n +3 | awk '{print $2}'
|
||||||
|
}
|
||||||
|
|
||||||
|
_virt_rescue ()
|
||||||
|
{
|
||||||
|
local cur prev words cword split
|
||||||
|
local longopts flag_ro=0 c=1 word doms
|
||||||
|
|
||||||
|
_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
|
||||||
|
word="${COMP_WORDS[c]}"
|
||||||
|
case "$word" in
|
||||||
|
-r|--ro) flag_ro=1 ;;
|
||||||
|
esac
|
||||||
|
c=$((++c))
|
||||||
|
done
|
||||||
|
|
||||||
|
case "$prev" in
|
||||||
|
-d|--domain)
|
||||||
|
doms=$(_guestfs_virsh_list "$flag_ro")
|
||||||
|
COMPREPLY=( $(compgen -W "$doms" -- "$cur") )
|
||||||
|
return ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$cur" in
|
||||||
|
--*)
|
||||||
|
# --options
|
||||||
|
COMPREPLY=( $(compgen -W "$longopts" -- "$cur") )
|
||||||
|
return ;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=( $(compgen "$cur") )
|
||||||
|
return ;;
|
||||||
|
esac
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_rescue virt-rescue
|
||||||
46
bash/virt-resize
Normal file
46
bash/virt-resize
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# virt-resize, virt-sparsify bash completion script -*- shell-script -*-
|
||||||
|
# Copyright (C) 2010-2013 Red Hat Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
_guestfs_options_only ()
|
||||||
|
{
|
||||||
|
local cur prev words cword split
|
||||||
|
local longopts="$1"
|
||||||
|
|
||||||
|
_init_completion -s || return
|
||||||
|
|
||||||
|
case "$cur" in
|
||||||
|
--*)
|
||||||
|
# --options
|
||||||
|
COMPREPLY=( $(compgen -W "$longopts" -- "$cur") )
|
||||||
|
return ;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=( $(compgen "$cur") )
|
||||||
|
return ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
_virt_resize ()
|
||||||
|
{
|
||||||
|
_guestfs_options_only "$(virt-resize --long-options)"
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_resize virt-resize
|
||||||
|
|
||||||
|
_virt_sparsify ()
|
||||||
|
{
|
||||||
|
_guestfs_options_only "$(virt-sparsify --long-options)"
|
||||||
|
} &&
|
||||||
|
complete -o default -F _virt_sparsify virt-sparsify
|
||||||
16
configure.ac
16
configure.ac
@@ -1483,6 +1483,19 @@ m4_ifdef([GTK_DOC_CHECK], [
|
|||||||
AM_CONDITIONAL([ENABLE_GTK_DOC], false)
|
AM_CONDITIONAL([ENABLE_GTK_DOC], false)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl Bash completion.
|
||||||
|
PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [
|
||||||
|
bash_completion=yes
|
||||||
|
AC_MSG_CHECKING([for bash-completions directory])
|
||||||
|
BASH_COMPLETIONS_DIR="`pkg-config --variable=completionsdir bash-completion`"
|
||||||
|
AC_MSG_RESULT([$BASH_COMPLETIONS_DIR])
|
||||||
|
AC_SUBST([BASH_COMPLETIONS_DIR])
|
||||||
|
],[
|
||||||
|
bash_completion=no
|
||||||
|
AC_MSG_WARN([bash-completion not installed])
|
||||||
|
])
|
||||||
|
AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test "x$bash_completion" = "xyes"])
|
||||||
|
|
||||||
dnl Library versioning.
|
dnl Library versioning.
|
||||||
MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR`
|
MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR`
|
||||||
AC_SUBST(MAX_PROC_NR)
|
AC_SUBST(MAX_PROC_NR)
|
||||||
@@ -1508,6 +1521,7 @@ AC_CONFIG_FILES([run],
|
|||||||
AC_CONFIG_FILES([Makefile
|
AC_CONFIG_FILES([Makefile
|
||||||
align/Makefile
|
align/Makefile
|
||||||
appliance/Makefile
|
appliance/Makefile
|
||||||
|
bash/Makefile
|
||||||
cat/Makefile
|
cat/Makefile
|
||||||
csharp/Makefile
|
csharp/Makefile
|
||||||
daemon/Makefile
|
daemon/Makefile
|
||||||
@@ -1626,6 +1640,8 @@ AS_ECHO_N(["gobject bindings .................... "])
|
|||||||
if test "x$HAVE_GOBJECT_TRUE" = "x"; then echo "yes"; else echo "no"; fi
|
if test "x$HAVE_GOBJECT_TRUE" = "x"; then echo "yes"; else echo "no"; fi
|
||||||
AS_ECHO_N(["gobject introspection ............... "])
|
AS_ECHO_N(["gobject introspection ............... "])
|
||||||
if test "x$HAVE_INTROSPECTION_TRUE" = "x"; then echo "yes"; else echo "no"; fi
|
if test "x$HAVE_INTROSPECTION_TRUE" = "x"; then echo "yes"; else echo "no"; fi
|
||||||
|
AS_ECHO_N(["bash completion ..................... "])
|
||||||
|
if test "x$HAVE_BASH_COMPLETION_TRUE" = "x"; then echo "yes"; else echo "no"; fi
|
||||||
echo
|
echo
|
||||||
echo "If any optional component is configured 'no' when you expected 'yes'"
|
echo "If any optional component is configured 'no' when you expected 'yes'"
|
||||||
echo "then you should check the preceding messages."
|
echo "then you should check the preceding messages."
|
||||||
|
|||||||
@@ -47,7 +47,6 @@ EXTRA_DIST = \
|
|||||||
$(BUILT_SOURCES) \
|
$(BUILT_SOURCES) \
|
||||||
rc_protocol.x \
|
rc_protocol.x \
|
||||||
guestfish.pod \
|
guestfish.pod \
|
||||||
libguestfs-bash-completion.sh \
|
|
||||||
libguestfs-tools.conf \
|
libguestfs-tools.conf \
|
||||||
virt-copy-in \
|
virt-copy-in \
|
||||||
virt-copy-out \
|
virt-copy-out \
|
||||||
@@ -243,11 +242,6 @@ stamp-virt-tar-out.pod: virt-tar-out.pod
|
|||||||
toolsconfdir = $(sysconfdir)
|
toolsconfdir = $(sysconfdir)
|
||||||
toolsconf_DATA = libguestfs-tools.conf
|
toolsconf_DATA = libguestfs-tools.conf
|
||||||
|
|
||||||
# Bash completion script.
|
|
||||||
|
|
||||||
bashcompletiondir = $(sysconfdir)/bash_completion.d
|
|
||||||
bashcompletion_DATA = libguestfs-bash-completion.sh
|
|
||||||
|
|
||||||
# Tests.
|
# Tests.
|
||||||
|
|
||||||
TESTS_ENVIRONMENT = $(top_builddir)/run --test
|
TESTS_ENVIRONMENT = $(top_builddir)/run --test
|
||||||
|
|||||||
@@ -1,326 +0,0 @@
|
|||||||
# guestfish, guestmount and libguestfs tools bash completion script
|
|
||||||
# Copyright (C) 2010-2013 Red Hat Inc.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
# To use this script, copy it into /etc/bash_completion.d/ if
|
|
||||||
# that directory exists.
|
|
||||||
#
|
|
||||||
# If your distro does not have that directory (or if you cannot or
|
|
||||||
# do not want to install this in /etc) then you can copy this to
|
|
||||||
# somewhere in your home directory such as
|
|
||||||
# ~/.libguestfs-bash-completion.sh and add this to your .bashrc:
|
|
||||||
# source ~/.libguestfs-bash-completion.sh
|
|
||||||
|
|
||||||
# This was "inspired" by the git bash completion script written by
|
|
||||||
# Shawn O. Pearce.
|
|
||||||
|
|
||||||
_guestfs_complete ()
|
|
||||||
{
|
|
||||||
local fn="$1" cmd="$2"
|
|
||||||
complete -o bashdefault -o default -F "$fn" "$cmd" 2>/dev/null \
|
|
||||||
|| complete -o default -F "$fn" "$cmd"
|
|
||||||
}
|
|
||||||
|
|
||||||
# List all local libvirt domains.
|
|
||||||
_guestfs_virsh_list ()
|
|
||||||
{
|
|
||||||
local flag_ro=$1 flags
|
|
||||||
|
|
||||||
if [ "$flag_ro" -eq 1 ]; then
|
|
||||||
flags="--all"
|
|
||||||
else
|
|
||||||
flags="--inactive"
|
|
||||||
fi
|
|
||||||
virsh list $flags | head -n -1 | tail -n +3 | awk '{print $2}'
|
|
||||||
}
|
|
||||||
|
|
||||||
# guestfish
|
|
||||||
_guestfs_guestfish ()
|
|
||||||
{
|
|
||||||
local longopts flag_a=0 flag_d=0 flag_ro=0 c=1 word cmds doms
|
|
||||||
|
|
||||||
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
|
|
||||||
word="${COMP_WORDS[c]}"
|
|
||||||
case "$word" in
|
|
||||||
-r|--ro) flag_ro=1 ;;
|
|
||||||
esac
|
|
||||||
c=$((++c))
|
|
||||||
done
|
|
||||||
|
|
||||||
# Check for flags preceeding the current position.
|
|
||||||
c=$(($COMP_CWORD-1))
|
|
||||||
if [ "$c" -gt 0 ]; then
|
|
||||||
word="${COMP_WORDS[$c]}"
|
|
||||||
case "$word" in
|
|
||||||
-a|--add) flag_a=1 ;;
|
|
||||||
-d|--domain) flag_d=1 ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Now try to complete the current word.
|
|
||||||
word="${COMP_WORDS[COMP_CWORD]}"
|
|
||||||
case "$word" in
|
|
||||||
--*)
|
|
||||||
# --options
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W "$longopts" -- "$word")) ;;
|
|
||||||
*)
|
|
||||||
if [ "$flag_d" -eq 1 ]; then
|
|
||||||
# -d <domain>
|
|
||||||
doms=$(_guestfs_virsh_list "$flag_ro")
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W "$doms" -- "$word"))
|
|
||||||
elif [ "$flag_a" -eq 1 ]; then
|
|
||||||
# -a <file>
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen "$word"))
|
|
||||||
else
|
|
||||||
# A guestfish command.
|
|
||||||
cmds=$(guestfish -h| head -n -1 | tail -n +2 | awk '{print $1}')
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W "$cmds" -- "$word"))
|
|
||||||
fi ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_guestfish guestfish
|
|
||||||
|
|
||||||
# guestmount
|
|
||||||
_guestfs_guestmount ()
|
|
||||||
{
|
|
||||||
local longopts flag_d=0 flag_ro=0 c=1 word doms
|
|
||||||
|
|
||||||
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
|
|
||||||
word="${COMP_WORDS[c]}"
|
|
||||||
case "$word" in
|
|
||||||
-r|--ro) flag_ro=1 ;;
|
|
||||||
esac
|
|
||||||
c=$((++c))
|
|
||||||
done
|
|
||||||
|
|
||||||
# Check for flags preceeding the current position.
|
|
||||||
c=$(($COMP_CWORD-1))
|
|
||||||
if [ "$c" -gt 0 ]; then
|
|
||||||
word="${COMP_WORDS[$c]}"
|
|
||||||
case "$word" in
|
|
||||||
-d|--domain) flag_d=1 ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Now try to complete the current word.
|
|
||||||
word="${COMP_WORDS[COMP_CWORD]}"
|
|
||||||
case "$word" in
|
|
||||||
--*)
|
|
||||||
# --options
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W "$longopts" -- "$word")) ;;
|
|
||||||
*)
|
|
||||||
if [ "$flag_d" -eq 1 ]; then
|
|
||||||
# -d <domain>
|
|
||||||
doms=$(_guestfs_virsh_list "$flag_ro")
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W "$doms" -- "$word"))
|
|
||||||
else
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen "$word"))
|
|
||||||
fi ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_guestmount guestmount
|
|
||||||
|
|
||||||
# virt-rescue (similar to guestmount)
|
|
||||||
_guestfs_virt_rescue ()
|
|
||||||
{
|
|
||||||
local longopts flag_d=0 flag_ro=0 c=1 word doms
|
|
||||||
|
|
||||||
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
|
|
||||||
word="${COMP_WORDS[c]}"
|
|
||||||
case "$word" in
|
|
||||||
-r|--ro) flag_ro=1 ;;
|
|
||||||
esac
|
|
||||||
c=$((++c))
|
|
||||||
done
|
|
||||||
|
|
||||||
# Check for flags preceeding the current position.
|
|
||||||
c=$(($COMP_CWORD-1))
|
|
||||||
if [ "$c" -gt 0 ]; then
|
|
||||||
word="${COMP_WORDS[$c]}"
|
|
||||||
case "$word" in
|
|
||||||
-d|--domain) flag_d=1 ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Now try to complete the current word.
|
|
||||||
word="${COMP_WORDS[COMP_CWORD]}"
|
|
||||||
case "$word" in
|
|
||||||
--*)
|
|
||||||
# --options
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W "$longopts" -- "$word")) ;;
|
|
||||||
*)
|
|
||||||
if [ "$flag_d" -eq 1 ]; then
|
|
||||||
# -d <domain>
|
|
||||||
doms=$(_guestfs_virsh_list "$flag_ro")
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W "$doms" -- "$word"))
|
|
||||||
else
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen "$word"))
|
|
||||||
fi ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_rescue virt-rescue
|
|
||||||
|
|
||||||
# Tools like virt-cat, virt-edit etc which have an implicit --ro or --rw.
|
|
||||||
_guestfs_virttools ()
|
|
||||||
{
|
|
||||||
local longopts="$1" flag_ro="$2" flag_d=0 c word doms
|
|
||||||
|
|
||||||
# Check for flags preceeding the current position.
|
|
||||||
c=$(($COMP_CWORD-1))
|
|
||||||
if [ "$c" -gt 0 ]; then
|
|
||||||
word="${COMP_WORDS[$c]}"
|
|
||||||
case "$word" in
|
|
||||||
-d|--domain) flag_d=1 ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Now try to complete the current word.
|
|
||||||
word="${COMP_WORDS[COMP_CWORD]}"
|
|
||||||
case "$word" in
|
|
||||||
--*)
|
|
||||||
# --options
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W "$longopts" -- "$word")) ;;
|
|
||||||
*)
|
|
||||||
if [ "$flag_d" -eq 1 ]; then
|
|
||||||
# -d <domain>
|
|
||||||
doms=$(_guestfs_virsh_list "$flag_ro")
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W "$doms" -- "$word"))
|
|
||||||
else
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen "$word"))
|
|
||||||
fi ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_virt_alignment_scan ()
|
|
||||||
{
|
|
||||||
_guestfs_virttools "$(virt-alignment-scan --long-options)" 1
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_alignment_scan virt-alignment-scan
|
|
||||||
|
|
||||||
_guestfs_virt_cat ()
|
|
||||||
{
|
|
||||||
_guestfs_virttools "$(virt-cat --long-options)" 1
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_cat virt-cat
|
|
||||||
|
|
||||||
_guestfs_virt_df ()
|
|
||||||
{
|
|
||||||
_guestfs_virttools "$(virt-df --long-options)" 1
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_df virt-df
|
|
||||||
|
|
||||||
_guestfs_virt_edit ()
|
|
||||||
{
|
|
||||||
_guestfs_virttools "$(virt-edit --long-options)" 0
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_edit virt-edit
|
|
||||||
|
|
||||||
_guestfs_virt_filesystems ()
|
|
||||||
{
|
|
||||||
_guestfs_virttools "$(virt-filesystems --long-options)" 1
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_filesystems virt-filesystems
|
|
||||||
|
|
||||||
_guestfs_virt_format ()
|
|
||||||
{
|
|
||||||
_guestfs_virttools "$(virt-format --long-options)" 0
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_format virt-format
|
|
||||||
|
|
||||||
_guestfs_virt_inspector ()
|
|
||||||
{
|
|
||||||
_guestfs_virttools "$(virt-inspector --long-options)" 1
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_inspector virt-inspector
|
|
||||||
|
|
||||||
_guestfs_virt_ls ()
|
|
||||||
{
|
|
||||||
_guestfs_virttools "$(virt-ls --long-options)" 1
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_ls virt-ls
|
|
||||||
|
|
||||||
_guestfs_virt_sysprep ()
|
|
||||||
{
|
|
||||||
_guestfs_virttools "$(virt-sysprep --long-options)" 0
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_sysprep virt-sysprep
|
|
||||||
|
|
||||||
# Where we can only complete --options.
|
|
||||||
_guestfs_options_only ()
|
|
||||||
{
|
|
||||||
local longopts="$1" word
|
|
||||||
|
|
||||||
# Try to complete the current word.
|
|
||||||
word="${COMP_WORDS[COMP_CWORD]}"
|
|
||||||
case "$word" in
|
|
||||||
--*)
|
|
||||||
# --options
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W "$longopts" -- "$word")) ;;
|
|
||||||
*)
|
|
||||||
COMPREPLY=(${COMPREPLY[@]:-} $(compgen "$word"))
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_virt_resize ()
|
|
||||||
{
|
|
||||||
_guestfs_options_only "$(virt-resize --long-options)"
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_resize virt-resize
|
|
||||||
|
|
||||||
_guestfs_virt_sparsify ()
|
|
||||||
{
|
|
||||||
_guestfs_options_only "$(virt-sparsify --long-options)"
|
|
||||||
}
|
|
||||||
|
|
||||||
_guestfs_complete _guestfs_virt_sparsify virt-sparsify
|
|
||||||
|
|
||||||
# Not done:
|
|
||||||
# - virt-copy-in
|
|
||||||
# - virt-copy-out
|
|
||||||
# - virt-list-filesystems
|
|
||||||
# - virt-list-partitions
|
|
||||||
# - virt-make-fs
|
|
||||||
# - virt-tar
|
|
||||||
# - virt-tar-in
|
|
||||||
# - virt-tar-out
|
|
||||||
# - virt-win-reg
|
|
||||||
|
|
||||||
# EOF
|
|
||||||
@@ -3894,6 +3894,10 @@ L<virt-alignment-scan(1)> command and documentation.
|
|||||||
|
|
||||||
The libguestfs appliance, build scripts and so on.
|
The libguestfs appliance, build scripts and so on.
|
||||||
|
|
||||||
|
=item C<bash>
|
||||||
|
|
||||||
|
Bash tab-completion scripts.
|
||||||
|
|
||||||
=item C<build-aux>
|
=item C<build-aux>
|
||||||
|
|
||||||
Various build scripts used by autotools.
|
Various build scripts used by autotools.
|
||||||
|
|||||||
Reference in New Issue
Block a user