mirror of
https://github.com/gryf/vboxmanage-bash-completion.git
synced 2025-12-19 12:28:19 +01:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 88566ade92 | |||
| fcc43508e6 | |||
| c6e71c51d9 | |||
| 2860d4e247 | |||
| e4618d52a5 | |||
| 6251330e9b | |||
| c05e1c4758 | |||
| 8c9812799d | |||
| 6db5b8c816 |
24
LICENSE
Normal file
24
LICENSE
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
Copyright (c) 2015, Roman Dobosz
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the organization nor the names of its contributors
|
||||||
|
may be used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL ROMAN DOBOSZ BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||||
|
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
8
README
8
README
@@ -1,8 +0,0 @@
|
|||||||
VBoxManage bash completion script.
|
|
||||||
|
|
||||||
This version of the completion was initially based on Sebastian T. Hafner
|
|
||||||
script. However, in some point of time I've decided to rewrite it almost from
|
|
||||||
scratch.
|
|
||||||
|
|
||||||
Current version of script was written and tested against VBoxManage in version
|
|
||||||
4.3.18, and supports all commands (in some extent ;)).
|
|
||||||
56
README.rst
Normal file
56
README.rst
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
VBoxManage bash completion script
|
||||||
|
=================================
|
||||||
|
|
||||||
|
This version of the completion was initially based on Sebastian T. Hafner
|
||||||
|
script. However, in some point of time I've decided to rewrite it almost from
|
||||||
|
scratch.
|
||||||
|
|
||||||
|
Current version of script was written and tested against VBoxManage in version
|
||||||
|
5.0.18, and supports all commands (in some extent ;)).
|
||||||
|
|
||||||
|
Unlike other attempts, I've tried to make the script context aware. See the
|
||||||
|
simple session with the VBoxManage command below, to have an idea how it works:
|
||||||
|
|
||||||
|
.. image:: /images/vboxmanage_session.gif?raw=true
|
||||||
|
:alt: VBoxManage session
|
||||||
|
|
||||||
|
|
||||||
|
Note, that ``startvm`` command proposes only VMs, which are not running, while
|
||||||
|
``controlvm`` will complete only running VMs.
|
||||||
|
|
||||||
|
What is worth to mention, this completion script is a real thing, so it only
|
||||||
|
offer things which have sense for particular commands, for example:
|
||||||
|
|
||||||
|
.. image:: /images/vboxmanage_snapshot.gif?raw=true
|
||||||
|
:alt: Take a snapshot
|
||||||
|
|
||||||
|
For ``snapshot take`` subcommand, the only options which are proposed are
|
||||||
|
``--live`` and ``--description``. Other commands and subcommands are behaving in
|
||||||
|
similar way.
|
||||||
|
|
||||||
|
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
Either source the file::
|
||||||
|
|
||||||
|
$ . /path/to/this/repo/VBoxManage
|
||||||
|
|
||||||
|
or add it to a proper place depending on your distribution. Usual place would
|
||||||
|
be:
|
||||||
|
|
||||||
|
* ~/bash-completion.d/
|
||||||
|
* /usr/local/etc/bash-completion.d/
|
||||||
|
* /etc/bash_completion.d/
|
||||||
|
* etc.
|
||||||
|
|
||||||
|
It's also okay to copy it into some directory, and place proper line in
|
||||||
|
``.profile`` or ``.bashrc``::
|
||||||
|
|
||||||
|
source /some/directory/VBoxManage
|
||||||
|
|
||||||
|
License
|
||||||
|
=======
|
||||||
|
|
||||||
|
This software is licensed under 3-clause BSD license. See LICENSE file for
|
||||||
|
details.
|
||||||
550
VBoxManage
550
VBoxManage
@@ -1,6 +1,7 @@
|
|||||||
# bash command-line completion for VBoxManage command
|
# bash command-line completion for VBoxManage command
|
||||||
#
|
#
|
||||||
# Author: Roman 'gryf' Dobosz <gryf73@gmail.com>
|
# Author: Roman 'gryf' Dobosz <gryf73@gmail.com>
|
||||||
|
# License: 3-clause BSD-style license (see LICENSE file)
|
||||||
|
|
||||||
_VBoxManage() {
|
_VBoxManage() {
|
||||||
local cur prev opts cmd subcommand tmp items name index result
|
local cur prev opts cmd subcommand tmp items name index result
|
||||||
@@ -101,10 +102,24 @@ _VBoxManage() {
|
|||||||
# Issues are the same as in above function.
|
# Issues are the same as in above function.
|
||||||
_vms_comp() {
|
_vms_comp() {
|
||||||
local command=$1
|
local command=$1
|
||||||
|
local exclude_running=false
|
||||||
local vms
|
local vms
|
||||||
|
local running_vms
|
||||||
local item
|
local item
|
||||||
|
|
||||||
|
|
||||||
compopt -o filenames
|
compopt -o filenames
|
||||||
|
if [[ $# == 2 ]]
|
||||||
|
then
|
||||||
|
exclude_running=true
|
||||||
|
running_vms=$(VBoxManage list runningvms | \
|
||||||
|
awk -F ' {' '{ print $1 }' | \
|
||||||
|
tr '\n' '|' | \
|
||||||
|
sed 's/|$//' | \
|
||||||
|
sed 's/"//g')
|
||||||
|
IFS='|' read -ra running_vms <<< "$running_vms"
|
||||||
|
fi
|
||||||
|
|
||||||
vms=$(VBoxManage list $command | \
|
vms=$(VBoxManage list $command | \
|
||||||
awk -F ' {' '{ print $1 }' | \
|
awk -F ' {' '{ print $1 }' | \
|
||||||
tr '\n' '|' | \
|
tr '\n' '|' | \
|
||||||
@@ -113,6 +128,12 @@ _VBoxManage() {
|
|||||||
IFS='|' read -ra vms <<< "$vms"
|
IFS='|' read -ra vms <<< "$vms"
|
||||||
for item in "${vms[@]}"
|
for item in "${vms[@]}"
|
||||||
do
|
do
|
||||||
|
if $exclude_running
|
||||||
|
then
|
||||||
|
_is_in_array "$item" "${running_vms[@]}"
|
||||||
|
[[ $? == 0 ]] && continue
|
||||||
|
fi
|
||||||
|
|
||||||
[[ ${item^^} == ${cur^^}* ]] && COMPREPLY+=("$item")
|
[[ ${item^^} == ${cur^^}* ]] && COMPREPLY+=("$item")
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@@ -369,6 +390,33 @@ _VBoxManage() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_is_in_array() {
|
||||||
|
local element
|
||||||
|
for element in "${@:2}"
|
||||||
|
do
|
||||||
|
[[ "$element" == "$1" ]] && return 0
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# search for the word before current one, and try to match apropriate item
|
||||||
|
# to be displayed
|
||||||
|
# for example:
|
||||||
|
# foo bar disk baz
|
||||||
|
# will search for word disk.
|
||||||
|
_get_medium () {
|
||||||
|
case "${COMP_WORDS[COMP_CWORD-2]}" in
|
||||||
|
disk)
|
||||||
|
_hdd_comp
|
||||||
|
;;
|
||||||
|
dvd)
|
||||||
|
_dvds_comp
|
||||||
|
;;
|
||||||
|
floppy)
|
||||||
|
_floppy_comp
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
COMP_WORDBREAKS=${COMP_WORDBREAKS//|/} # remove pipe from comp word breaks
|
COMP_WORDBREAKS=${COMP_WORDBREAKS//|/} # remove pipe from comp word breaks
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
@@ -402,6 +450,7 @@ _VBoxManage() {
|
|||||||
[[ -z "${name}" ]] &&
|
[[ -z "${name}" ]] &&
|
||||||
_vms_state_comp
|
_vms_state_comp
|
||||||
;;
|
;;
|
||||||
|
|
||||||
bandwidthctl)
|
bandwidthctl)
|
||||||
local items=(add set remove list)
|
local items=(add set remove list)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
@@ -448,10 +497,29 @@ _VBoxManage() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
clonehd)
|
checkmediumpwd)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_hdd_comp
|
_hdd_comp
|
||||||
|
_floppy_comp
|
||||||
|
_dvds_comp
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
clonemedium)
|
||||||
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
|
COMPREPLY=( $(compgen -W "disk dvd floppy" -- ${cur}) )
|
||||||
else
|
else
|
||||||
|
case "${prev}" in
|
||||||
|
disk)
|
||||||
|
_hdd_comp
|
||||||
|
;;
|
||||||
|
dvd)
|
||||||
|
_dvds_comp
|
||||||
|
;;
|
||||||
|
floppy)
|
||||||
|
_floppy_comp
|
||||||
|
;;
|
||||||
|
*)
|
||||||
_find_item_name 2
|
_find_item_name 2
|
||||||
items=(--format --variant --existing)
|
items=(--format --variant --existing)
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
@@ -459,15 +527,19 @@ _VBoxManage() {
|
|||||||
|
|
||||||
case "${prev}" in
|
case "${prev}" in
|
||||||
--format)
|
--format)
|
||||||
COMPREPLY=( $(compgen -W "VDI VMDK VHD RAW" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "VDI VMDK VHD RAW" --\
|
||||||
|
${cur}) )
|
||||||
;;
|
;;
|
||||||
--variant)
|
--variant)
|
||||||
COMPREPLY=( $(compgen -W "Standard Fixed Split2G Stream
|
COMPREPLY=( $(compgen -W "Standard Fixed Split2G
|
||||||
ESX" -- ${cur}) )
|
Stream ESX" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
clonevm)
|
clonevm)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp vms
|
_vms_comp vms
|
||||||
@@ -500,9 +572,13 @@ _VBoxManage() {
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
closemedium)
|
closemedium)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
COMPREPLY=( $(compgen -W "disk dvd floppy" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "disk dvd floppy" -- ${cur}) )
|
||||||
|
_hdd_comp
|
||||||
|
_dvds_comp
|
||||||
|
_floppy_comp
|
||||||
else
|
else
|
||||||
case "${prev}" in
|
case "${prev}" in
|
||||||
disk)
|
disk)
|
||||||
@@ -522,6 +598,7 @@ _VBoxManage() {
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
controlvm)
|
controlvm)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp runningvms
|
_vms_comp runningvms
|
||||||
@@ -540,8 +617,12 @@ _VBoxManage() {
|
|||||||
screenshotpng setcredentials setlinkstate1 setlinkstate2
|
screenshotpng setcredentials setlinkstate1 setlinkstate2
|
||||||
setlinkstate3 setlinkstate4 setlinkstate5 setlinkstate6
|
setlinkstate3 setlinkstate4 setlinkstate5 setlinkstate6
|
||||||
setlinkstate7 setlinkstate8 setvideomodehint teleport unplugcpu
|
setlinkstate7 setlinkstate8 setvideomodehint teleport unplugcpu
|
||||||
usbattach usbdetach vcpenabled vcpscreens vrde vrdeport
|
usbattach usbdetach vrde vrdeport vrdeproperty
|
||||||
vrdeproperty vrdevideochannelquality webcam)
|
vrdevideochannelquality webcam videocap videocapscreens
|
||||||
|
videocapfile videocapres videocaprate videocapfps
|
||||||
|
videocapmaxtime videocapmaxsize addencpassword removeencpassword
|
||||||
|
removeallencpasswords)
|
||||||
|
|
||||||
|
|
||||||
_find_item_name 2
|
_find_item_name 2
|
||||||
subcommand=${COMP_WORDS[$((index+1))]}
|
subcommand=${COMP_WORDS[$((index+1))]}
|
||||||
@@ -585,13 +666,13 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "disabled
|
COMPREPLY=( $(compgen -W "disabled
|
||||||
hosttoguest" -- ${cur}) )
|
hosttoguest" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
vrde|vcpenabled)
|
vrde|videocap)
|
||||||
[[ ${prev} == "vrde" ||
|
[[ ${prev} == "vrde" ||
|
||||||
${prev} == "vcpenabled" ]] && \
|
${prev} == "videocap" ]] && \
|
||||||
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
vcpscreens)
|
videocapscreens)
|
||||||
[[ ${prev} == "vcpscreens" ]] && \
|
[[ ${prev} == "videocapscreens" ]] && \
|
||||||
COMPREPLY=( $(compgen -W "all none" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "all none" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
setcredentials)
|
setcredentials)
|
||||||
@@ -614,6 +695,22 @@ _VBoxManage() {
|
|||||||
[[ ${prev} == "attach" ]] && \
|
[[ ${prev} == "attach" ]] && \
|
||||||
_webcam_avail_comp
|
_webcam_avail_comp
|
||||||
;;
|
;;
|
||||||
|
usbattach)
|
||||||
|
tmp=(--capturefile)
|
||||||
|
_get_excluded_items "${tmp[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
|
--removeonsuspend)
|
||||||
|
COMPREPLY=( $(compgen -W "yes no" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
|
addencpassword)
|
||||||
|
tmp=(--host --port --maxdowntime --passwordfile
|
||||||
|
--password)
|
||||||
|
_get_excluded_items "${tmp[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
||||||
@@ -621,6 +718,7 @@ _VBoxManage() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
convertfromraw)
|
convertfromraw)
|
||||||
local items=(--format --variant --uuid)
|
local items=(--format --variant --uuid)
|
||||||
|
|
||||||
@@ -640,11 +738,17 @@ _VBoxManage() {
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
createhd)
|
|
||||||
|
createmedium)
|
||||||
items=(--filename --size --sizebyte --diffparent --format --variant)
|
items=(--filename --size --sizebyte --diffparent --format --variant)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "disk dvd floppy" -- ${cur}) )
|
||||||
else
|
else
|
||||||
|
case "${prev}" in
|
||||||
|
disk|dvd|floppy)
|
||||||
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
*)
|
||||||
[[ " ${COMP_WORDS[@]} " == *" --size "* ||
|
[[ " ${COMP_WORDS[@]} " == *" --size "* ||
|
||||||
" ${COMP_WORDS[@]} " == *" --sizebyte "* ]] &&
|
" ${COMP_WORDS[@]} " == *" --sizebyte "* ]] &&
|
||||||
items=(--filename --diffparent --format --variant)
|
items=(--filename --diffparent --format --variant)
|
||||||
@@ -660,15 +764,19 @@ _VBoxManage() {
|
|||||||
_hdd_comp
|
_hdd_comp
|
||||||
;;
|
;;
|
||||||
--format)
|
--format)
|
||||||
COMPREPLY=( $(compgen -W "VDI VMDK VHD" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "VDI VMDK VHD" --\
|
||||||
|
${cur}) )
|
||||||
;;
|
;;
|
||||||
--variant)
|
--variant)
|
||||||
COMPREPLY=( $(compgen -W "Standard Fixed Split2G Stream
|
COMPREPLY=( $(compgen -W "Standard Fixed Split2G
|
||||||
ESX" -- ${cur}) )
|
Stream ESX" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
createvm)
|
createvm)
|
||||||
items=(--name --groups --ostype --register --basefolder --uuid)
|
items=(--name --groups --ostype --register --basefolder --uuid)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
@@ -696,9 +804,10 @@ _VBoxManage() {
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
debugvm)
|
debugvm)
|
||||||
items=(dumpguestcore info injectnmi log logdest logflags osdetect
|
items=(dumpguestcore info injectnmi log logdest logflags osdetect
|
||||||
osinfo getregisters setregisters show statistics)
|
osinfo osdmesg getregisters setregisters show statistics)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp runningvms
|
_vms_comp runningvms
|
||||||
else
|
else
|
||||||
@@ -730,6 +839,14 @@ _VBoxManage() {
|
|||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
osdmesg)
|
||||||
|
items=()
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --lines "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -n "* ]] &&
|
||||||
|
items+=(--lines -n)
|
||||||
|
_get_excluded_items "${items[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
_get_excluded_items "--descriptions"
|
_get_excluded_items "--descriptions"
|
||||||
COMPREPLY+=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY+=( $(compgen -W "$result" -- ${cur}) )
|
||||||
@@ -741,6 +858,7 @@ _VBoxManage() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
dhcpserver)
|
dhcpserver)
|
||||||
items=(add modify remove)
|
items=(add modify remove)
|
||||||
subcommand=${COMP_WORDS[2]}
|
subcommand=${COMP_WORDS[2]}
|
||||||
@@ -785,12 +903,26 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
discardstate)
|
discardstate)
|
||||||
_find_item_name 2
|
_find_item_name 2
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
[[ -z "${name}" ]] &&
|
[[ -z "${name}" ]] &&
|
||||||
_vms_state_comp
|
_vms_state_comp
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
encryptmedium)
|
||||||
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
|
_hdd_comp
|
||||||
|
_floppy_comp
|
||||||
|
_dvds_comp
|
||||||
|
else
|
||||||
|
COMPREPLY=( $(compgen -W "--newpassword --oldpassword --cipher
|
||||||
|
--newpasswordid" -- ${cur}) )
|
||||||
|
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
"export")
|
"export")
|
||||||
items=( --manifest --iso --options --vsys)
|
items=( --manifest --iso --options --vsys)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
@@ -820,6 +952,7 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
extpack)
|
extpack)
|
||||||
items=(install uninstall cleanup)
|
items=(install uninstall cleanup)
|
||||||
subcommand=${COMP_WORDS[2]}
|
subcommand=${COMP_WORDS[2]}
|
||||||
@@ -845,6 +978,7 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
getextradata)
|
getextradata)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
COMPREPLY=( $(compgen -W "global" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "global" -- ${cur}) )
|
||||||
@@ -854,11 +988,13 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
guestcontrol)
|
guestcontrol)
|
||||||
local items=(execute copyfrom copyto cp createdir createdirectory
|
local items=(run start copyfrom copyto mkdir createdir
|
||||||
mkdir md removedir removedirectory rmdir removefile rm ren rename mv
|
createdirectory rmdir removedir removedirectory removefile rm mv
|
||||||
createtemp createtemporary mktemp list process pskill kill session
|
move ren rename mktemp createtemp createtemporary stat list
|
||||||
stat updateadditions watch)
|
closeprocess closesession updatega updateguestadditions
|
||||||
|
updateadditions watch)
|
||||||
|
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp runningvms
|
_vms_comp runningvms
|
||||||
@@ -867,80 +1003,213 @@ _VBoxManage() {
|
|||||||
subcommand=${COMP_WORDS[$((index+1))]}
|
subcommand=${COMP_WORDS[$((index+1))]}
|
||||||
if [[ " ${items[@]} " == *" $subcommand "* ]]; then
|
if [[ " ${items[@]} " == *" $subcommand "* ]]; then
|
||||||
case "${subcommand}" in
|
case "${subcommand}" in
|
||||||
exec|execute)
|
run)
|
||||||
items=(--image --username --passwordfile --password
|
items=(--exe --timeout --unquoted-args
|
||||||
--domain --verbose --timeout --environment
|
--ignore-operhaned-processes --no-profile
|
||||||
--wait-exit --wait-stdout --wait-stderr --dos2unix
|
--dos2unix --unix2dos --username --domain --)
|
||||||
--unix2dos)
|
|
||||||
|
|
||||||
[[ " ${COMP_WORDS[@]} " == *" --password "* ||
|
[[ " ${comp_words[@]} " != *" --password "* ||
|
||||||
" ${COMP_WORDS[@]} " == *" --passwordfile "* ]] &&
|
" ${comp_words[@]} " != *" --passwordfile "* ]] &&
|
||||||
items=(--image --username --domain --verbose
|
items+=(--passwordfile --password)
|
||||||
--timeout --environment --wait-exit --wait-stdout
|
[[ " ${COMP_WORDS[@]} " != *" --putenv "* &&
|
||||||
--wait-stderr --dos2unix --unix2dos)
|
" ${COMP_WORDS[@]} " != *" -E "* ]] &&
|
||||||
|
items+=(--putenv -E)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --no-wait-stdout "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" --wait-stdout "* ]] &&
|
||||||
|
items+=(--no-wait-stdout --wait-stdout)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --no-wait-stderr"* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" --wait-stderr "* ]] &&
|
||||||
|
items+=(--no-wait-stderr --wait-stderr)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
|
||||||
|
_get_excluded_items "${items[@]}"
|
||||||
|
compreply=( $(compgen -w "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
|
start)
|
||||||
|
items=(--exe --timeout --unquoted-args
|
||||||
|
--ignore-operhaned-processes --no-profile
|
||||||
|
--username --domain --passwordfile --password --)
|
||||||
|
|
||||||
|
[[ " ${comp_words[@]} " != *" --password "* ||
|
||||||
|
" ${comp_words[@]} " != *" --passwordfile "* ]] &&
|
||||||
|
items+=(--passwordfile --password)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
|
||||||
|
_get_excluded_items "${items[@]}"
|
||||||
|
compreply=( $(compgen -w "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
|
copyfrom|copyto)
|
||||||
|
items=(--dryrun --follow --target-directory
|
||||||
|
--username --domain)
|
||||||
|
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --recursive "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -R "* ]] &&
|
||||||
|
items+=(--recursive -R)
|
||||||
|
[[ " ${comp_words[@]} " != *" --password "* ||
|
||||||
|
" ${comp_words[@]} " != *" --passwordfile "* ]] &&
|
||||||
|
items+=(--passwordfile --password)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
copyfrom|copyto|cp)
|
|
||||||
items=(--username --passwordfile --password
|
createdirectory|createdir|mkdir)
|
||||||
--domain --verbose --dryrun --follow --recursive)
|
items=(--parents --mode --username --domain)
|
||||||
[[ " ${COMP_WORDS[@]} " == *" --password "* ||
|
[[ " ${COMP_WORDS[@]} " != *" --password "* ||
|
||||||
" ${COMP_WORDS[@]} " == *" --passwordfile "* ]] &&
|
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
||||||
items=(--username --domain --verbose --dryrun
|
items+=(--passwordfile --password)
|
||||||
--follow --recursive)
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
_get_excluded_items "${items[@]}"
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
items+=(--verbose -v)
|
||||||
;;
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
createdirectory|createdir|mkdir|md)
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
items=(--username --passwordfile --password
|
items+=(--quiet -q)
|
||||||
--domain --verbose --parents --mode)
|
|
||||||
[[ " ${COMP_WORDS[@]} " == *" --password "* ||
|
|
||||||
" ${COMP_WORDS[@]} " == *" --passwordfile "* ]] &&
|
|
||||||
items=(--username --domain --verbose --parents
|
|
||||||
--mode)
|
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
removedir|removedirectory|rmdir)
|
removedir|removedirectory|rmdir)
|
||||||
items=(--username --domain --verbose)
|
items=(--username --domain)
|
||||||
[[ " ${COMP_WORDS[@]} " != *" --password "* &&
|
[[ " ${COMP_WORDS[@]} " != *" --password "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
||||||
items+=(--passwordfile --password)
|
items+=(--passwordfile --password)
|
||||||
[[ " ${COMP_WORDS[@]} " != *" --recursive "* &&
|
[[ " ${COMP_WORDS[@]} " != *" --recursive "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" -R "* &&
|
" ${COMP_WORDS[@]} " != *" -R "* ]] &&
|
||||||
" ${COMP_WORDS[@]} " != *" -r "* ]] &&
|
items+=(--recursive -R)
|
||||||
items+=(--recursive -R -r)
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
removefile|rm|rename|ren|mv)
|
|
||||||
items=(--username --domain --verbose)
|
removefile|rm)
|
||||||
|
items=(--username --domain)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --force "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -f "* ]] &&
|
||||||
|
items+=(--force -f)
|
||||||
[[ " ${COMP_WORDS[@]} " != *" --password "* &&
|
[[ " ${COMP_WORDS[@]} " != *" --password "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
||||||
items+=(--passwordfile --password)
|
items+=(--passwordfile --password)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
rename|ren|move|mv)
|
||||||
|
items=(--username --domain)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --password "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
||||||
|
items+=(--passwordfile --password)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
|
||||||
|
_get_excluded_items "${items[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
createtemporary|createtemp|mktemp)
|
createtemporary|createtemp|mktemp)
|
||||||
items=(--username --domain --verbose --directory
|
items=(--username --domain --secure --tmpdir --mode)
|
||||||
--secure --tmpdir --mode)
|
|
||||||
[[ " ${COMP_WORDS[@]} " != *" --password "* &&
|
[[ " ${COMP_WORDS[@]} " != *" --password "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
||||||
items+=(--passwordfile --password)
|
items+=(--passwordfile --password)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
list)
|
list)
|
||||||
items=(--verbose)
|
items=()
|
||||||
[[ " ${COMP_WORDS[@]} " != *" all "* &&
|
[[ " ${COMP_WORDS[@]} " != *" all "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" sessions "* &&
|
" ${COMP_WORDS[@]} " != *" sessions "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" processes "* &&
|
" ${COMP_WORDS[@]} " != *" processes "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" files "* ]] &&
|
" ${COMP_WORDS[@]} " != *" files "* ]] &&
|
||||||
items+=(all sessions processes files)
|
items+=(all sessions processes files)
|
||||||
|
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
closeprocess)
|
||||||
|
items=()
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --session-id "* ]] &&
|
||||||
|
items+=(--session-name)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --session-name "* ]] &&
|
||||||
|
items+=(--session-id)
|
||||||
|
|
||||||
|
_get_excluded_items "${items[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
|
closesession)
|
||||||
|
items=()
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --session-id "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" --session-name "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" --all "* ]] &&
|
||||||
|
items+=(--session-id --session-name --all)
|
||||||
|
|
||||||
|
_get_excluded_items "${items[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
process)
|
process)
|
||||||
if [[ " ${COMP_WORDS[@]} " == *" process kill "* ]];
|
if [[ " ${COMP_WORDS[@]} " == *" process kill "* ]];
|
||||||
then
|
then
|
||||||
@@ -955,18 +1224,7 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
pskill|pkill|kill)
|
|
||||||
items=(--verbose)
|
|
||||||
[[ " ${COMP_WORDS[@]} " != *" --session-name "* &&
|
|
||||||
" ${COMP_WORDS[@]} " != *" --session-id "* ]] &&
|
|
||||||
items+=(--session-id --session-name)
|
|
||||||
_get_excluded_items "${items[@]}"
|
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
|
||||||
;;
|
|
||||||
session)
|
|
||||||
_get_excluded_items "close"
|
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
|
||||||
;;
|
|
||||||
stat)
|
stat)
|
||||||
if [[ "${cur}" == "stat" ]]; then
|
if [[ "${cur}" == "stat" ]]; then
|
||||||
COMPREPLY=( $(compgen -- ${cur}) )
|
COMPREPLY=( $(compgen -- ${cur}) )
|
||||||
@@ -975,16 +1233,38 @@ _VBoxManage() {
|
|||||||
[[ " ${COMP_WORDS[@]} " != *" --password "* &&
|
[[ " ${COMP_WORDS[@]} " != *" --password "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
||||||
items+=(--passwordfile --password)
|
items+=(--passwordfile --password)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
updateadditions)
|
updatega|updateguestadditions|updateadditions)
|
||||||
items=(--source --verbose --wait-start)
|
items=(--source --wait-start)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
watch)
|
watch)
|
||||||
|
items=()
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
|
items+=(--verbose -v)
|
||||||
|
[[ " ${COMP_WORDS[@]} " != *" --quiet "* &&
|
||||||
|
" ${COMP_WORDS[@]} " != *" -q "* ]] &&
|
||||||
|
items+=(--quiet -q)
|
||||||
|
|
||||||
_get_excluded_items "--verbose"
|
_get_excluded_items "--verbose"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
@@ -1020,6 +1300,7 @@ _VBoxManage() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
guestproperty)
|
guestproperty)
|
||||||
items=(get set delete unset enumerate wait)
|
items=(get set delete unset enumerate wait)
|
||||||
subcommand=${COMP_WORDS[2]}
|
subcommand=${COMP_WORDS[2]}
|
||||||
@@ -1051,6 +1332,7 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
hostonlyif)
|
hostonlyif)
|
||||||
items=(ipconfig create remove)
|
items=(ipconfig create remove)
|
||||||
subcommand=${COMP_WORDS[2]}
|
subcommand=${COMP_WORDS[2]}
|
||||||
@@ -1084,6 +1366,7 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
import)
|
import)
|
||||||
items=(--options)
|
items=(--options)
|
||||||
if [[ "${prev}" == "import" ]]; then
|
if [[ "${prev}" == "import" ]]; then
|
||||||
@@ -1092,8 +1375,8 @@ _VBoxManage() {
|
|||||||
else
|
else
|
||||||
case "${prev}" in
|
case "${prev}" in
|
||||||
--options)
|
--options)
|
||||||
COMPREPLY=( $(compgen -W "keepallmacs keepnatmacs" \
|
COMPREPLY=( $(compgen -W "keepallmacs keepnatmacs
|
||||||
-- ${cur}) )
|
importtovdi" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
[[ " ${COMP_WORDS[@]} " != *" --dry-run"* &&
|
[[ " ${COMP_WORDS[@]} " != *" --dry-run"* &&
|
||||||
@@ -1106,6 +1389,7 @@ _VBoxManage() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
list)
|
list)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_list_comp ${cur}
|
_list_comp ${cur}
|
||||||
@@ -1120,6 +1404,22 @@ _VBoxManage() {
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
mediumproperty)
|
||||||
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
|
COMPREPLY=( $(compgen -W "disk dvd floppy" -- ${cur}) )
|
||||||
|
else
|
||||||
|
case "${prev}" in
|
||||||
|
disk|dvd|floppy)
|
||||||
|
COMPREPLY=( $(compgen -W "get set delete" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
get|set|floppy)
|
||||||
|
_get_medium
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
metrics)
|
metrics)
|
||||||
items=(list setup query enable disable collect)
|
items=(list setup query enable disable collect)
|
||||||
subcommand=${COMP_WORDS[2]}
|
subcommand=${COMP_WORDS[2]}
|
||||||
@@ -1176,30 +1476,46 @@ _VBoxManage() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
;;
|
;;
|
||||||
modifyhd)
|
|
||||||
|
modifymedium)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_hdd_comp
|
COMPREPLY=( $(compgen -W "disk dvd floppy" -- ${cur}) )
|
||||||
else
|
else
|
||||||
|
case "${prev}" in
|
||||||
|
disk)
|
||||||
|
_hdd_comp
|
||||||
|
;;
|
||||||
|
dvd)
|
||||||
|
_dvds_comp
|
||||||
|
;;
|
||||||
|
floppy)
|
||||||
|
_floppy_comp
|
||||||
|
;;
|
||||||
|
*)
|
||||||
_find_item_name 2
|
_find_item_name 2
|
||||||
items=(--type --autoreset --property --compact --resize)
|
items=(--type --autoreset --property --compact --resize)
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
case "${prev}" in
|
case "${prev}" in
|
||||||
--type)
|
--type)
|
||||||
COMPREPLY=( $(compgen -W "normal writethrough immutable
|
COMPREPLY=( $(compgen -W "normal writethrough
|
||||||
shareable readonly multiattach" -- ${cur}) )
|
immutable shareable readonly multiattach" --\
|
||||||
|
${cur}) )
|
||||||
;;
|
;;
|
||||||
--autoreset)
|
--autoreset)
|
||||||
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
modifyvm)
|
modifyvm)
|
||||||
items=(--name --groups --description --ostype --iconfile --memory
|
items=(--name --groups --description --ostype --iconfile --memory
|
||||||
--pagefusion --vram --acpi --pciattach --pcidetach --ioapic --hpet
|
--pagefusion --vram --acpi --pciattach --pcidetach --ioapic --hpet
|
||||||
--triplefaultreset --hwvirtex --nestedpaging --largepages --vtxvpid
|
--triplefaultreset --hwvirtex --nestedpaging --largepages --vtxvpid
|
||||||
--vtxux --pae --longmode --synthcpu --cpuidset --cpuidremove
|
--vtxux --pae --longmode --cpuidset --cpuidremove
|
||||||
--cpuidremoveall --hardwareuuid --cpus --cpuhotplug --plugcpu
|
--cpuidremoveall --hardwareuuid --cpus --cpuhotplug --plugcpu
|
||||||
--unplugcpu --cpuexecutioncap --rtcuseutc --graphicscontroller
|
--unplugcpu --cpuexecutioncap --rtcuseutc --graphicscontroller
|
||||||
--monitorcount --accelerate3d --accelerate2dvideo --firmware
|
--monitorcount --accelerate3d --accelerate2dvideo --firmware
|
||||||
@@ -1263,9 +1579,11 @@ _VBoxManage() {
|
|||||||
--teleporter --teleporterport --teleporteraddress
|
--teleporter --teleporterport --teleporteraddress
|
||||||
--teleporterpassword --teleporterpasswordfile --tracing-enabled
|
--teleporterpassword --teleporterpasswordfile --tracing-enabled
|
||||||
--tracing-config --tracing-allow-vm-access --usbcardreader
|
--tracing-config --tracing-allow-vm-access --usbcardreader
|
||||||
--autostart-enabled --autostart-delay --vcpenabled --vcpscreens
|
--autostart-enabled --autostart-delay --videocap --videocapscreens
|
||||||
--vcpfile --vcpwidth --vcpheight --vcprate --vcpfps
|
--videocapfile --videocapres --videocaprate --videocapfps
|
||||||
--defaultfrontend)
|
--videocapmaxtime --videocapmaxsize --videocapopts --defaultfrontend
|
||||||
|
--cpuid-portability-level --paravirtprovider --audiocodec --usbxhci
|
||||||
|
--usbrename)
|
||||||
|
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp vms
|
_vms_comp vms
|
||||||
@@ -1283,7 +1601,7 @@ _VBoxManage() {
|
|||||||
;;
|
;;
|
||||||
--pagefusion|--acpi|--ioapic|--hpet|--triplefaultreset|\
|
--pagefusion|--acpi|--ioapic|--hpet|--triplefaultreset|\
|
||||||
--hwvirtex|--nestedpaging|--largepages|--vtxvpid|--vtxux|\
|
--hwvirtex|--nestedpaging|--largepages|--vtxvpid|--vtxux|\
|
||||||
--pae|--longmode|--synthcpu|--cpuhotplug|--rtcuseutc|\
|
--pae|--longmode|--cpuhotplug|--rtcuseutc|\
|
||||||
--accelerate3d|--accelerate2dvideo|--bioslogofadein|\
|
--accelerate3d|--accelerate2dvideo|--bioslogofadein|\
|
||||||
--bioslogofadeout|--biospxedebug|--cableconnected1|\
|
--bioslogofadeout|--biospxedebug|--cableconnected1|\
|
||||||
--cableconnected2|--cableconnected3|--cableconnected4|\
|
--cableconnected2|--cableconnected3|--cableconnected4|\
|
||||||
@@ -1302,7 +1620,7 @@ _VBoxManage() {
|
|||||||
--vrdemulticon|--vrdereusecon|--vrdevideochannel|--usb|\
|
--vrdemulticon|--vrdereusecon|--vrdevideochannel|--usb|\
|
||||||
--usbehci|--teleporter|--tracing-enabled|\
|
--usbehci|--teleporter|--tracing-enabled|\
|
||||||
--tracing-allow-vm-access|--usbcardreader|\
|
--tracing-allow-vm-access|--usbcardreader|\
|
||||||
--autostart-enabled|--vcpenabled)
|
--autostart-enabled|--videocap|--usbxhci)
|
||||||
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
--graphicscontroller)
|
--graphicscontroller)
|
||||||
@@ -1389,10 +1707,10 @@ _VBoxManage() {
|
|||||||
;;
|
;;
|
||||||
--uartmode[1-2])
|
--uartmode[1-2])
|
||||||
COMPREPLY+=( $(compgen -W "disconnected server client
|
COMPREPLY+=( $(compgen -W "disconnected server client
|
||||||
file" -- ${cur}) )
|
tcpserver tcpclient file" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
--audio)
|
--audio)
|
||||||
COMPREPLY+=( $(compgen -W "none null oss alsa" \
|
COMPREPLY+=( $(compgen -W "none null oss alsa pulse" \
|
||||||
-- ${cur}) )
|
-- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -1400,6 +1718,11 @@ _VBoxManage() {
|
|||||||
COMPREPLY+=( $(compgen -W "ac97 hda sb16" -- ${cur}) )
|
COMPREPLY+=( $(compgen -W "ac97 hda sb16" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
--audiocodec)
|
||||||
|
COMPREPLY+=( $(compgen -W "stac9700 ad1980 stac9221
|
||||||
|
sb16" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
--clipboard)
|
--clipboard)
|
||||||
COMPREPLY+=( $(compgen -W "disabled hosttoguest
|
COMPREPLY+=( $(compgen -W "disabled hosttoguest
|
||||||
guesttohost bidirectional" -- ${cur}) )
|
guesttohost bidirectional" -- ${cur}) )
|
||||||
@@ -1417,9 +1740,17 @@ _VBoxManage() {
|
|||||||
COMPREPLY+=( $(compgen -W "null external guest" \
|
COMPREPLY+=( $(compgen -W "null external guest" \
|
||||||
-- ${cur}) )
|
-- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
--paravirtprovider)
|
||||||
|
COMPREPLY=( $(compgen -W "none default legacy minimal
|
||||||
|
hyperv kvm" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--cpuid-portability-level)
|
||||||
|
COMPREPLY=( $(compgen -W "0 1 2 3" -- ${cur}) )
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
natnetwork)
|
natnetwork)
|
||||||
items=(add remove modify start stop)
|
items=(add remove modify start stop)
|
||||||
subcommand=${COMP_WORDS[2]}
|
subcommand=${COMP_WORDS[2]}
|
||||||
@@ -1450,6 +1781,7 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
registervm)
|
registervm)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
bind 'set mark-directories on'
|
bind 'set mark-directories on'
|
||||||
@@ -1460,16 +1792,18 @@ _VBoxManage() {
|
|||||||
COMPREPLY[0]="${COMPREPLY[0]}/"
|
COMPREPLY[0]="${COMPREPLY[0]}/"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
setextradata)
|
setextradata)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
COMPREPLY=( $(compgen -W "global" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "global" -- ${cur}) )
|
||||||
_vms_comp vms
|
_vms_comp vms
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
setproperty)
|
setproperty)
|
||||||
items=(machinefolder hwvirtexclusive vrdeauthlibrary
|
items=(machinefolder hwvirtexclusive vrdeauthlibrary
|
||||||
websrvauthlibrary vrdeextpack autostartdbpath loghistorycount
|
websrvauthlibrary vrdeextpack autostartdbpath loghistorycount
|
||||||
defaultfrontend)
|
defaultfrontend logginglevel)
|
||||||
subcommand=${COMP_WORDS[2]}
|
subcommand=${COMP_WORDS[2]}
|
||||||
if [[ "${prev}" == "${cmd}" ]]; then
|
if [[ "${prev}" == "${cmd}" ]]; then
|
||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
@@ -1499,6 +1833,7 @@ _VBoxManage() {
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
sharedfolder)
|
sharedfolder)
|
||||||
items=(add remove)
|
items=(add remove)
|
||||||
subcommand=${COMP_WORDS[2]}
|
subcommand=${COMP_WORDS[2]}
|
||||||
@@ -1535,11 +1870,32 @@ _VBoxManage() {
|
|||||||
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
showhdinfo)
|
showmediuminfo)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
|
COMPREPLY=( $(compgen -W "disk dvd floppy" -- ${cur}) )
|
||||||
_hdd_comp
|
_hdd_comp
|
||||||
|
_dvds_comp
|
||||||
|
_floppy_comp
|
||||||
|
else
|
||||||
|
case "${prev}" in
|
||||||
|
disk)
|
||||||
|
_hdd_comp
|
||||||
|
;;
|
||||||
|
dvd)
|
||||||
|
_dvds_comp
|
||||||
|
;;
|
||||||
|
floppy)
|
||||||
|
_floppy_comp
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
items=(--delete)
|
||||||
|
_get_excluded_items "${items[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
showvminfo)
|
showvminfo)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp vms
|
_vms_comp vms
|
||||||
@@ -1558,6 +1914,7 @@ _VBoxManage() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
snapshot)
|
snapshot)
|
||||||
items=(take delete restore restorecurrent edit list showvminfo)
|
items=(take delete restore restorecurrent edit list showvminfo)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
@@ -1568,7 +1925,7 @@ _VBoxManage() {
|
|||||||
if [[ " ${items[@]} " == *" $subcommand "* ]]; then
|
if [[ " ${items[@]} " == *" $subcommand "* ]]; then
|
||||||
case "${subcommand}" in
|
case "${subcommand}" in
|
||||||
take)
|
take)
|
||||||
items=(--description --live)
|
items=(--description --live --uniquename)
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
@@ -1601,17 +1958,19 @@ _VBoxManage() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
startvm)
|
startvm)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp vms
|
_vms_comp vms 1
|
||||||
elif [[ "${prev}" == "--type" ]]; then
|
elif [[ "${prev}" == "--type" ]]; then
|
||||||
COMPREPLY=( $(compgen -W "gui sdl headless" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "gui sdl headless separate" -- ${cur}) )
|
||||||
else
|
else
|
||||||
local items=(--type)
|
local items=(--type)
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
storageattach)
|
storageattach)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp vms
|
_vms_comp vms
|
||||||
@@ -1619,9 +1978,9 @@ _VBoxManage() {
|
|||||||
_find_item_name 2
|
_find_item_name 2
|
||||||
local items=(--storagectl --port --device --type --medium --mtype
|
local items=(--storagectl --port --device --type --medium --mtype
|
||||||
--comment --setuuid --setparentuuid --passthrough --tempeject
|
--comment --setuuid --setparentuuid --passthrough --tempeject
|
||||||
--nonrotational --discard --bandwidthgroup --forceunmount
|
--nonrotational --discard --hotpluggable --bandwidthgroup
|
||||||
--server --target --tport --lun --encodedlun --username
|
--forceunmount --server --target --tport --lun --encodedlun
|
||||||
--password --initiator --intnet)
|
--username --password --initiator --intnet)
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
|
||||||
@@ -1650,9 +2009,10 @@ _VBoxManage() {
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
storagectl)
|
storagectl)
|
||||||
local items=(--name --add --controller --portcount --hostiocache
|
local items=(--name --add --controller --portcount --hostiocache
|
||||||
--bootable --remove)
|
--bootable --rename --remove)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp vms
|
_vms_comp vms
|
||||||
else
|
else
|
||||||
@@ -1673,6 +2033,7 @@ _VBoxManage() {
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
unregistervm)
|
unregistervm)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp vms
|
_vms_comp vms
|
||||||
@@ -1682,7 +2043,8 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
usbfilter)
|
|
||||||
|
usbfilte)
|
||||||
if [[ COMP_CWORD -ge 3 ]]; then
|
if [[ COMP_CWORD -ge 3 ]]; then
|
||||||
subcommand="${COMP_WORDS[2]}"
|
subcommand="${COMP_WORDS[2]}"
|
||||||
if [[ $subcommand == "${cmd}" ]]; then
|
if [[ $subcommand == "${cmd}" ]]; then
|
||||||
|
|||||||
BIN
images/vboxmanage_session.gif
Normal file
BIN
images/vboxmanage_session.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 MiB |
BIN
images/vboxmanage_snapshot.gif
Normal file
BIN
images/vboxmanage_snapshot.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 232 KiB |
Reference in New Issue
Block a user