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:
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
|
||||
Reference in New Issue
Block a user