mirror of
https://github.com/gryf/vboxmanage-bash-completion.git
synced 2025-12-19 12:28:19 +01:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c8301459df | |||
| ab0cc7aea4 | |||
| f73e80c7ad | |||
| 10900543fa | |||
| 1be3e589d4 | |||
| 9c5b048c62 | |||
| 5fd18d7cec | |||
| 05af06f337 | |||
| cde78c8e4c | |||
|
|
197c46cd35 | ||
|
|
296be19560 | ||
| 62f57ebbb7 | |||
| d4f56a0d6b | |||
| f8b5981935 | |||
| d027094e7c | |||
| e90270e8ee | |||
| 11a0844c4d |
@@ -6,7 +6,7 @@ script. However, in some point of time I've decided to rewrite it almost from
|
|||||||
scratch.
|
scratch.
|
||||||
|
|
||||||
Current version of script was written and tested against VBoxManage in version
|
Current version of script was written and tested against VBoxManage in version
|
||||||
5.1.26, and supports all commands (in some extent ;)).
|
6.0.12, and should contain all commands and their options.
|
||||||
|
|
||||||
Unlike other attempts, I've tried to make the script context aware. See the
|
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:
|
simple session with the VBoxManage command below, to have an idea how it works:
|
||||||
|
|||||||
357
VBoxManage
357
VBoxManage
@@ -4,7 +4,7 @@
|
|||||||
# URL: https://bitbucket.org/gryf/vboxmanage-bash-completion
|
# URL: https://bitbucket.org/gryf/vboxmanage-bash-completion
|
||||||
# URL: https://github.com/gryf/vboxmanage-bash-completion
|
# URL: https://github.com/gryf/vboxmanage-bash-completion
|
||||||
# License: 3-clause BSD-style license (see LICENSE file)
|
# License: 3-clause BSD-style license (see LICENSE file)
|
||||||
# Version: 5.1.26
|
# Version: 6.0.12
|
||||||
|
|
||||||
_VBoxManage() {
|
_VBoxManage() {
|
||||||
local cur prev opts cmd subcommand tmp items name index result
|
local cur prev opts cmd subcommand tmp items name index result
|
||||||
@@ -42,6 +42,18 @@ _VBoxManage() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_is_any_item_used() {
|
||||||
|
local i
|
||||||
|
|
||||||
|
result=""
|
||||||
|
for i in $@; do
|
||||||
|
if [[ " ${COMP_WORDS[@]} " == *" $i "* ]]; then
|
||||||
|
result="ITIS"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# Generate registered hard disk files.
|
# Generate registered hard disk files.
|
||||||
# NOTE: This function may introduce some quirks, if there is a space or
|
# NOTE: This function may introduce some quirks, if there is a space or
|
||||||
# other characters which usually are treated as IFS - like space. Pipe
|
# other characters which usually are treated as IFS - like space. Pipe
|
||||||
@@ -259,11 +271,14 @@ _VBoxManage() {
|
|||||||
snap=$(VBoxManage snapshot "${name//\\/}" \
|
snap=$(VBoxManage snapshot "${name//\\/}" \
|
||||||
list | \
|
list | \
|
||||||
grep UUID |
|
grep UUID |
|
||||||
awk -F ': ' '{print $2}' | \
|
awk -F ': *' -v ORS='|' '/UUID: / {
|
||||||
sed 's/ (.*//' | \
|
n=$2; u=$3
|
||||||
tr '\n' '|' | \
|
sub(/..UUID/, "", n)
|
||||||
sed 's/|$//' | \
|
gsub(/ /, "\\ ", n);
|
||||||
sed 's/\s/\\ /g')
|
sub(/[)].*/, "", u)
|
||||||
|
print n; print u
|
||||||
|
}'
|
||||||
|
)
|
||||||
IFS='|' read -ra snap <<< "$snap"
|
IFS='|' read -ra snap <<< "$snap"
|
||||||
|
|
||||||
for item in "${snap[@]}"
|
for item in "${snap[@]}"
|
||||||
@@ -308,14 +323,10 @@ _VBoxManage() {
|
|||||||
|
|
||||||
_list_comp() {
|
_list_comp() {
|
||||||
local list
|
local list
|
||||||
list=$(VBoxManage list | \
|
list=$(VBoxManage list | sed -e '1,2d' \
|
||||||
grep '|' | \
|
-e 's/VBoxManage list //' \
|
||||||
sed 's/\[.*\]//g'| \
|
-e 's/[\[\]\|]/ /g' \
|
||||||
sed 's/VBoxManage list//' | \
|
-e 's/|/ /g'|xargs echo)
|
||||||
tr "\\n" " " | \
|
|
||||||
sed 's/$/\n/' | \
|
|
||||||
sed 's/\s\+//g' | \
|
|
||||||
sed 's/|/ /g')
|
|
||||||
COMPREPLY=( $(compgen -W "$list" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$list" -- ${cur}) )
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -441,9 +452,9 @@ _VBoxManage() {
|
|||||||
sort | \
|
sort | \
|
||||||
uniq)
|
uniq)
|
||||||
|
|
||||||
# add debugvm command manually, since it's described differently in
|
# Add some commands manually, since they are listed differently in
|
||||||
# vboxmanage help
|
# vboxmanage help.
|
||||||
opts="${opts} debugvm"
|
opts="${opts} mediumio debugvm unattended extpack"
|
||||||
|
|
||||||
if [[ ${cur} == "-q" || ${COMP_CWORD} -eq 1 ]] ; then
|
if [[ ${cur} == "-q" || ${COMP_CWORD} -eq 1 ]] ; then
|
||||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||||
@@ -568,7 +579,7 @@ _VBoxManage() {
|
|||||||
;;
|
;;
|
||||||
--options)
|
--options)
|
||||||
COMPREPLY=( $(compgen -W "link keepallmacs keepnatmacs
|
COMPREPLY=( $(compgen -W "link keepallmacs keepnatmacs
|
||||||
keepdisknames" -- ${cur}) )
|
keepdisknames keephwuuids" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
--groups)
|
--groups)
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
@@ -626,17 +637,17 @@ _VBoxManage() {
|
|||||||
setlinkstate3 setlinkstate4 setlinkstate5 setlinkstate6
|
setlinkstate3 setlinkstate4 setlinkstate5 setlinkstate6
|
||||||
setlinkstate7 setlinkstate8 setvideomodehint teleport unplugcpu
|
setlinkstate7 setlinkstate8 setvideomodehint teleport unplugcpu
|
||||||
usbattach usbdetach vrde vrdeport vrdeproperty
|
usbattach usbdetach vrde vrdeport vrdeproperty
|
||||||
vrdevideochannelquality webcam videocap videocapscreens
|
vrdevideochannelquality webcam recording addencpassword
|
||||||
videocapfile videocapres videocaprate videocapfps
|
removeencpassword removeallencpasswords keyboardputstring
|
||||||
videocapmaxtime videocapmaxsize addencpassword removeencpassword
|
keyboardputfile audioin audioout setscreenlayout changeuartmode1
|
||||||
removeallencpasswords)
|
changeuartmode2)
|
||||||
|
|
||||||
_find_item_name 2
|
_find_item_name 2
|
||||||
subcommand=${COMP_WORDS[$((index+1))]}
|
subcommand=${COMP_WORDS[$((index+1))]}
|
||||||
|
|
||||||
if [[ " ${items[@]} " == *" $subcommand "* ]]; then
|
if [[ " ${items[@]} " == *" $subcommand "* ]]; then
|
||||||
case "${subcommand}" in
|
case "${subcommand}" in
|
||||||
nictracefile[1-8])
|
keyboardputfile|nictracefile[1-8])
|
||||||
[[ ${prev} == "nictracefile"* ]] && \
|
[[ ${prev} == "nictracefile"* ]] && \
|
||||||
COMPREPLY=( $(compgen -f -- ${cur}) )
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
@@ -659,7 +670,7 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "delete tcp
|
COMPREPLY=( $(compgen -W "delete tcp
|
||||||
udp" -- ${cur}) )
|
udp" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
setlinkstate[1-8])
|
audioin|audioout|setlinkstate[1-8])
|
||||||
[[ ${prev} == "setlinkstate"* ]] && \
|
[[ ${prev} == "setlinkstate"* ]] && \
|
||||||
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
@@ -670,14 +681,28 @@ _VBoxManage() {
|
|||||||
;;
|
;;
|
||||||
draganddrop)
|
draganddrop)
|
||||||
[[ ${prev} == "draganddrop" ]] && \
|
[[ ${prev} == "draganddrop" ]] && \
|
||||||
COMPREPLY=( $(compgen -W "disabled
|
COMPREPLY=( $(compgen -W "disabled hosttoguest
|
||||||
hosttoguest" -- ${cur}) )
|
guesttohost bidirectional" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
vrde|videocap)
|
vrde)
|
||||||
[[ ${prev} == "vrde" ||
|
[[ ${prev} == "vrde" ]] && \
|
||||||
${prev} == "videocap" ]] && \
|
|
||||||
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
recording)
|
||||||
|
[[ ${prev} == "recording" ]] && \
|
||||||
|
COMPREPLY=( $(compgen -W "on off screens
|
||||||
|
filename videores videorate videofps maxtime
|
||||||
|
maxfilesize" -- ${cur}) )
|
||||||
|
case "${prev}" in
|
||||||
|
screens)
|
||||||
|
COMPREPLY=( $(compgen -W "all none
|
||||||
|
<screen>" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
filename)
|
||||||
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
videocapscreens)
|
videocapscreens)
|
||||||
[[ ${prev} == "videocapscreens" ]] && \
|
[[ ${prev} == "videocapscreens" ]] && \
|
||||||
COMPREPLY=( $(compgen -W "all none" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "all none" -- ${cur}) )
|
||||||
@@ -716,7 +741,15 @@ _VBoxManage() {
|
|||||||
_get_excluded_items "${tmp[@]}"
|
_get_excluded_items "${tmp[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
changeuartmode[1-2])
|
||||||
|
tmp=(disconnected server client tcpserver tcpclient
|
||||||
|
file "<devicename>")
|
||||||
|
_get_excluded_items "${tmp[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
elif [[ ${prev} == "--passwordfile" || ${prev} == "--capturefile" ]]; then
|
||||||
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
else
|
else
|
||||||
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
@@ -762,7 +795,7 @@ _VBoxManage() {
|
|||||||
|
|
||||||
case "${prev}" in
|
case "${prev}" in
|
||||||
--filename)
|
--filename)
|
||||||
COMPREPLY=( $(compgen -- ${cur}) )
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
--diffparent)
|
--diffparent)
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
@@ -774,7 +807,7 @@ _VBoxManage() {
|
|||||||
;;
|
;;
|
||||||
--variant)
|
--variant)
|
||||||
COMPREPLY=( $(compgen -W "Standard Fixed Split2G
|
COMPREPLY=( $(compgen -W "Standard Fixed Split2G
|
||||||
Stream ESX" -- ${cur}) )
|
Stream ESX Formatted" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
@@ -783,7 +816,8 @@ _VBoxManage() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
createvm)
|
createvm)
|
||||||
items=(--name --groups --ostype --register --basefolder --uuid)
|
items=(--name --groups --ostype --register --basefolder --uuid
|
||||||
|
--default)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
else
|
else
|
||||||
@@ -856,7 +890,7 @@ _VBoxManage() {
|
|||||||
COMPREPLY+=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY+=( $(compgen -W "$result" -- ${cur}) )
|
||||||
else
|
else
|
||||||
[[ "${prev}" == "--filename" ]] && \
|
[[ "${prev}" == "--filename" ]] && \
|
||||||
COMPREPLY=( $(compgen -- ${cur}) )
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
@@ -869,7 +903,7 @@ _VBoxManage() {
|
|||||||
if [[ " ${items[@]} " == *" $subcommand "* ]]; then
|
if [[ " ${items[@]} " == *" $subcommand "* ]]; then
|
||||||
case "${subcommand}" in
|
case "${subcommand}" in
|
||||||
add|modify)
|
add|modify)
|
||||||
items=(--ip --netmask --lowerip --upperip)
|
items=(--ip --netmask --lowerip --upperip --options)
|
||||||
|
|
||||||
[[ " ${COMP_WORDS[@]} " != *" --ifname"* &&
|
[[ " ${COMP_WORDS[@]} " != *" --ifname"* &&
|
||||||
" ${COMP_WORDS[@]} " != *" --netname"* ]] &&
|
" ${COMP_WORDS[@]} " != *" --netname"* ]] &&
|
||||||
@@ -879,6 +913,9 @@ _VBoxManage() {
|
|||||||
" ${COMP_WORDS[@]} " != *" --disable"* ]] &&
|
" ${COMP_WORDS[@]} " != *" --disable"* ]] &&
|
||||||
items+=(--enable --disable)
|
items+=(--enable --disable)
|
||||||
|
|
||||||
|
[[ " ${COMP_WORDS[@]} " == *" --options"* ]] &&
|
||||||
|
items+=(--vm --nic --id --value --remove)
|
||||||
|
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
@@ -927,9 +964,15 @@ _VBoxManage() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
"export")
|
"export")
|
||||||
items=( --manifest --iso --options --vsys)
|
items=( --manifest --iso --options --vsys --cloud)
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp vms
|
_vms_comp vms
|
||||||
|
elif [[ ${prev} == "--eulafile" ]]; then
|
||||||
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
|
elif [[ ${prev} == "--cloudkeepobject" ||
|
||||||
|
${prev} == "--cloudlaunchinstance" ||
|
||||||
|
${prev} == "--cloudpublicip" ]]; then
|
||||||
|
COMPREPLY=( $(compgen -W "true false" -- ${cur}) )
|
||||||
else
|
else
|
||||||
[[ " ${COMP_WORDS[@]} " != *" -o "* &&
|
[[ " ${COMP_WORDS[@]} " != *" -o "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" --output "* ]] &&
|
" ${COMP_WORDS[@]} " != *" --output "* ]] &&
|
||||||
@@ -937,11 +980,16 @@ _VBoxManage() {
|
|||||||
[[ " ${COMP_WORDS[@]} " != *" --legacy09 "* &&
|
[[ " ${COMP_WORDS[@]} " != *" --legacy09 "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" --ovf09 "* &&
|
" ${COMP_WORDS[@]} " != *" --ovf09 "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" --ovf10 "* &&
|
" ${COMP_WORDS[@]} " != *" --ovf10 "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" --ovf20 "* ]] &&
|
" ${COMP_WORDS[@]} " != *" --ovf20 "* &&
|
||||||
items+=(--legacy09 --ovf09 --ovf10 --ovf20)
|
" ${COMP_WORDS[@]} " != *" --opc20 "* ]] &&
|
||||||
|
items+=(--legacy09 --ovf09 --ovf10 --ovf20 --opc10)
|
||||||
[[ " ${COMP_WORDS[@]} " == *" --vsys "* ]] &&
|
[[ " ${COMP_WORDS[@]} " == *" --vsys "* ]] &&
|
||||||
items+=(--product --producturl --vendor --vendorurl
|
items+=(--product --producturl --vendor --vendorurl
|
||||||
--version --description --eula --eulafile)
|
--version --description --eula --eulafile --vmname)
|
||||||
|
[[ " ${COMP_WORDS[@]} " == *" --cloud"* ]] &&
|
||||||
|
items+=(--vmname --cloudprofile --cloudshape --clouddomain
|
||||||
|
--clouddisksize --cloudbucket --cloudocivcn --cloudocisubnet
|
||||||
|
--cloudkeepobject --cloudlaunchinstance --cloudpublicip)
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
|
||||||
@@ -950,6 +998,7 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "manifest iso nomacs
|
COMPREPLY=( $(compgen -W "manifest iso nomacs
|
||||||
nomacsbutnat" -- ${cur}) )
|
nomacsbutnat" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
||||||
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
|
||||||
@@ -1011,8 +1060,8 @@ _VBoxManage() {
|
|||||||
--ignore-operhaned-processes --profile
|
--ignore-operhaned-processes --profile
|
||||||
--dos2unix --unix2dos --username --domain --)
|
--dos2unix --unix2dos --username --domain --)
|
||||||
|
|
||||||
[[ " ${comp_words[@]} " != *" --password "* ||
|
[[ " ${COMP_WORDS[@]} " != *" --password "* ||
|
||||||
" ${comp_words[@]} " != *" --passwordfile "* ]] &&
|
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
||||||
items+=(--passwordfile --password)
|
items+=(--passwordfile --password)
|
||||||
[[ " ${COMP_WORDS[@]} " != *" --putenv "* &&
|
[[ " ${COMP_WORDS[@]} " != *" --putenv "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" -E "* ]] &&
|
" ${COMP_WORDS[@]} " != *" -E "* ]] &&
|
||||||
@@ -1039,8 +1088,8 @@ _VBoxManage() {
|
|||||||
--ignore-operhaned-processes --profile
|
--ignore-operhaned-processes --profile
|
||||||
--username --domain --passwordfile --password --)
|
--username --domain --passwordfile --password --)
|
||||||
|
|
||||||
[[ " ${comp_words[@]} " != *" --password "* ||
|
[[ " ${COMP_WORDS[@]} " != *" --password "* ||
|
||||||
" ${comp_words[@]} " != *" --passwordfile "* ]] &&
|
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
||||||
items+=(--passwordfile --password)
|
items+=(--passwordfile --password)
|
||||||
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
@@ -1054,14 +1103,14 @@ _VBoxManage() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
copyfrom|copyto)
|
copyfrom|copyto)
|
||||||
items=(--dryrun --follow --target-directory
|
items=(--follow --target-directory --username
|
||||||
--username --domain)
|
--domain)
|
||||||
|
|
||||||
[[ " ${COMP_WORDS[@]} " != *" --recursive "* &&
|
[[ " ${COMP_WORDS[@]} " != *" --recursive "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" -R "* ]] &&
|
" ${COMP_WORDS[@]} " != *" -R "* ]] &&
|
||||||
items+=(--recursive -R)
|
items+=(--recursive -R)
|
||||||
[[ " ${comp_words[@]} " != *" --password "* ||
|
[[ " ${COMP_WORDS[@]} " != *" --password "* ||
|
||||||
" ${comp_words[@]} " != *" --passwordfile "* ]] &&
|
" ${COMP_WORDS[@]} " != *" --passwordfile "* ]] &&
|
||||||
items+=(--passwordfile --password)
|
items+=(--passwordfile --password)
|
||||||
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
[[ " ${COMP_WORDS[@]} " != *" --verbose "* &&
|
||||||
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
" ${COMP_WORDS[@]} " != *" -v "* ]] &&
|
||||||
@@ -1288,7 +1337,7 @@ _VBoxManage() {
|
|||||||
--image)
|
--image)
|
||||||
COMPREPLY=( $(compgen -- ${cur}) )
|
COMPREPLY=( $(compgen -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
--tmpdir)
|
--target-directory|--tmpdir)
|
||||||
COMPREPLY=( $(compgen -o dirnames -- ${cur}) )
|
COMPREPLY=( $(compgen -o dirnames -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
--source)
|
--source)
|
||||||
@@ -1299,6 +1348,9 @@ _VBoxManage() {
|
|||||||
"${COMPREPLY[0]}" != *".iso" ]] && \
|
"${COMPREPLY[0]}" != *".iso" ]] && \
|
||||||
COMPREPLY[0]="${COMPREPLY[0]}/"
|
COMPREPLY[0]="${COMPREPLY[0]}/"
|
||||||
;;
|
;;
|
||||||
|
--passwordfile)
|
||||||
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
[[ ${#COMPREPLY[@]} -eq 0 ]] && \
|
||||||
@@ -1401,12 +1453,40 @@ _VBoxManage() {
|
|||||||
_list_comp ${cur}
|
_list_comp ${cur}
|
||||||
else
|
else
|
||||||
case "${prev}" in
|
case "${prev}" in
|
||||||
--long|-l)
|
--sorted|-s)
|
||||||
COMPREPLY=()
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
COMPREPLY=( $(compgen -W "-l --long" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "-l --long" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
--long|-l)
|
||||||
|
COMPREPLY=( $(compgen -W "-s --sorted" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=( $(compgen -W "-l --long -s --sorted" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
mediumio)
|
||||||
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
|
_hdd_comp
|
||||||
|
_floppy_comp
|
||||||
|
_dvds_comp
|
||||||
|
else
|
||||||
|
case "${prev}" in
|
||||||
|
formatfat)
|
||||||
|
COMPREPLY=( $(compgen -W "--quick" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
cat)
|
||||||
|
COMPREPLY=( $(compgen -W "--hex --offset --size
|
||||||
|
--output" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
stream)
|
||||||
|
COMPREPLY=( $(compgen -W "--forma --variant
|
||||||
|
--output" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=( $(compgen -W "--password-file cat formatfat
|
||||||
|
stream" -- ${cur}) )
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@@ -1498,7 +1578,7 @@ _VBoxManage() {
|
|||||||
*)
|
*)
|
||||||
_find_item_name 2
|
_find_item_name 2
|
||||||
items=(--type --autoreset --property --compact --resize
|
items=(--type --autoreset --property --compact --resize
|
||||||
--move)
|
--move --description --setlocation)
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
case "${prev}" in
|
case "${prev}" in
|
||||||
@@ -1513,6 +1593,9 @@ _VBoxManage() {
|
|||||||
--move)
|
--move)
|
||||||
COMPREPLY=( $(compgen -o dirnames -- ${cur}) )
|
COMPREPLY=( $(compgen -o dirnames -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
--setlocation)
|
||||||
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -1523,7 +1606,7 @@ _VBoxManage() {
|
|||||||
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 --cpuidset --cpuidremove
|
--vtxux --pae --longmode --cpuid-set --cpuid-remove
|
||||||
--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
|
||||||
@@ -1583,16 +1666,19 @@ _VBoxManage() {
|
|||||||
--audiocontroller --clipboard --draganddrop --vrde --vrdeextpack
|
--audiocontroller --clipboard --draganddrop --vrde --vrdeextpack
|
||||||
--vrdeproperty --vrdeport --vrdeaddress --vrdeauthtype
|
--vrdeproperty --vrdeport --vrdeaddress --vrdeauthtype
|
||||||
--vrdeauthlibrary --vrdemulticon --vrdereusecon --vrdevideochannel
|
--vrdeauthlibrary --vrdemulticon --vrdereusecon --vrdevideochannel
|
||||||
--vrdevideochannelquality --usb --usbehci --snapshotfolder
|
--vrdevideochannelquality --usbohci --usbehci --snapshotfolder
|
||||||
--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 --videocap --videocapscreens
|
--autostart-enabled --autostart-delay --recording --recordingscreens
|
||||||
--videocapfile --videocapres --videocaprate --videocapfps
|
--recordingfile --recordingvideores --recordingvideorate
|
||||||
--videocapmaxtime --videocapmaxsize --videocapopts --defaultfrontend
|
--recordingvideofps --recordingmaxtime --recordingmaxsize
|
||||||
--cpuid-portability-level --paravirtprovider --audiocodec --usbxhci
|
--recordingopts --defaultfrontend --cpuid-portability-level
|
||||||
--usbrename --apic --x2apic --paravirtdebug --cpu-profile
|
--paravirtprovider --audiocodec --usbxhci --usbrename --apic
|
||||||
--biosapic --videocapopts)
|
--x2apic --paravirtdebug --cpu-profile --biosapic --ibpb-on-vm-entry
|
||||||
|
--ibpb-on-vm-exit --spec-ctrl --audioin --audioout
|
||||||
|
--l1d-flush-on-sched --l1d-flush-on-vm-entry --mds-clear-on-sched
|
||||||
|
--mds-clear-on-vm-entry --nested-hw-virt --uarttype1 --uarttype2)
|
||||||
|
|
||||||
if [[ ${prev} == ${cmd} ]]; then
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
_vms_comp vms
|
_vms_comp vms
|
||||||
@@ -1628,15 +1714,19 @@ _VBoxManage() {
|
|||||||
--natdnshostresolver3|--natdnshostresolver4|\
|
--natdnshostresolver3|--natdnshostresolver4|\
|
||||||
--natdnshostresolver5|--natdnshostresolver6|\
|
--natdnshostresolver5|--natdnshostresolver6|\
|
||||||
--natdnshostresolver7|--natdnshostresolver8|--vrde|\
|
--natdnshostresolver7|--natdnshostresolver8|--vrde|\
|
||||||
--vrdemulticon|--vrdereusecon|--vrdevideochannel|--usb|\
|
--vrdemulticon|--vrdereusecon|--vrdevideochannel|--usbohci|\
|
||||||
--usbehci|--teleporter|--tracing-enabled|\
|
--usbehci|--teleporter|--tracing-enabled|\
|
||||||
--tracing-allow-vm-access|--usbcardreader|\
|
--tracing-allow-vm-access|--usbcardreader|\
|
||||||
--autostart-enabled|--videocap|--usbxhci|--apic|--x2apic)
|
--autostart-enabled|--recording|--usbxhci|--apic|--x2apic|\
|
||||||
|
--ibpb-on-vm-entry|--ibpb-on-vm-exit|--spec-ctrl|--audioin|\
|
||||||
|
--audioout|--l1d-flush-on-sched|--l1d-flush-on-vm-entry|\
|
||||||
|
--mds-clear-on-sched|--mds-clear-on-vm-entry|\
|
||||||
|
--nested-hw-virt)
|
||||||
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--graphicscontroller)
|
--graphicscontroller)
|
||||||
COMPREPLY=( $(compgen -W "none vboxvga vmsvga" \
|
COMPREPLY=( $(compgen -W "none vboxvga vmsvga vboxsvga" \
|
||||||
-- ${cur}) )
|
-- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -1711,66 +1801,71 @@ _VBoxManage() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--natpf[1-8])
|
--natpf[1-8])
|
||||||
COMPREPLY+=( $(compgen -W "delete" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "delete" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--nataliasmode[1-8])
|
--nataliasmode[1-8])
|
||||||
COMPREPLY+=( $(compgen -W "default" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "default" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--macaddress[1-8])
|
--macaddress[1-8])
|
||||||
COMPREPLY+=( $(compgen -W "auto" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "auto" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--mouse)
|
--mouse)
|
||||||
COMPREPLY+=( $(compgen -W "ps2 usb usbtablet
|
COMPREPLY=( $(compgen -W "ps2 usb usbtablet
|
||||||
usbmultitouch" -- ${cur}) )
|
usbmultitouch" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--keyboard)
|
--keyboard)
|
||||||
COMPREPLY+=( $(compgen -W "ps2 usb" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "ps2 usb" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--uart[1-2]|--lpt[1-2])
|
--uart[1-2]|--lpt[1-2])
|
||||||
COMPREPLY+=( $(compgen -W "off" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "off" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--uartmode[1-2])
|
--uartmode[1-2])
|
||||||
COMPREPLY+=( $(compgen -W "disconnected server client
|
COMPREPLY=( $(compgen -W "disconnected server client
|
||||||
tcpserver tcpclient file" -- ${cur}) )
|
tcpserver tcpclient file" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
--uarttype[1-2])
|
||||||
|
COMPREPLY=( $(compgen -W "16450 16550A
|
||||||
|
16750" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
--audio)
|
--audio)
|
||||||
COMPREPLY+=( $(compgen -W "none null oss alsa pulse" \
|
COMPREPLY=( $(compgen -W "none null oss alsa pulse" \
|
||||||
-- ${cur}) )
|
-- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--audiocontroller)
|
--audiocontroller)
|
||||||
COMPREPLY+=( $(compgen -W "ac97 hda sb16" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "ac97 hda sb16" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--audiocodec)
|
--audiocodec)
|
||||||
COMPREPLY+=( $(compgen -W "stac9700 ad1980 stac9221
|
COMPREPLY=( $(compgen -W "stac9700 ad1980 stac9221
|
||||||
sb16" -- ${cur}) )
|
sb16" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--clipboard)
|
--clipboard)
|
||||||
COMPREPLY+=( $(compgen -W "disabled hosttoguest
|
COMPREPLY=( $(compgen -W "disabled hosttoguest
|
||||||
guesttohost bidirectional" -- ${cur}) )
|
guesttohost bidirectional" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--draganddrop)
|
--draganddrop)
|
||||||
COMPREPLY+=( $(compgen -W "disabled hosttoguest" \
|
COMPREPLY=( $(compgen -W "disabled hosttoguest
|
||||||
-- ${cur}) )
|
guesttohost bidirectional" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--vrdeextpack|--vrdeauthlibrary|--snapshotfolder|\
|
--vrdeextpack|--vrdeauthlibrary|--snapshotfolder|\
|
||||||
--defaultfrontend)
|
--defaultfrontend)
|
||||||
COMPREPLY+=( $(compgen -W "default" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "default" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--vrdeauthtype)
|
--vrdeauthtype)
|
||||||
COMPREPLY+=( $(compgen -W "null external guest" \
|
COMPREPLY=( $(compgen -W "null external guest" \
|
||||||
-- ${cur}) )
|
-- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -1792,6 +1887,35 @@ _VBoxManage() {
|
|||||||
COMPREPLY=( $(compgen -W "disabled apic x2apic" \
|
COMPREPLY=( $(compgen -W "disabled apic x2apic" \
|
||||||
-- ${cur}) )
|
-- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
--teleporterpasswordfile|--iconfile|--recordingfile)
|
||||||
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--nictracefile[1-8])
|
||||||
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--nattftpfile[1-8])
|
||||||
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
movevm)
|
||||||
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
|
_vms_comp vms
|
||||||
|
else
|
||||||
|
_find_item_name 2
|
||||||
|
items=(--type --folder)
|
||||||
|
_get_excluded_items "${items[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
case "${prev}" in
|
||||||
|
--type)
|
||||||
|
COMPREPLY=( $(compgen -W "basic" -- ${cur}) )
|
||||||
|
_snapshot_comp
|
||||||
|
;;
|
||||||
|
--folder)
|
||||||
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@@ -1848,7 +1972,7 @@ _VBoxManage() {
|
|||||||
setproperty)
|
setproperty)
|
||||||
items=(machinefolder hwvirtexclusive vrdeauthlibrary
|
items=(machinefolder hwvirtexclusive vrdeauthlibrary
|
||||||
websrvauthlibrary vrdeextpack autostartdbpath loghistorycount
|
websrvauthlibrary vrdeextpack autostartdbpath loghistorycount
|
||||||
defaultfrontend logginglevel)
|
defaultfrontend logginglevel proxymode proxyurl)
|
||||||
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}) )
|
||||||
@@ -1875,6 +1999,10 @@ _VBoxManage() {
|
|||||||
defaultfrontend)
|
defaultfrontend)
|
||||||
COMPREPLY=( $(compgen -W "null" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "null" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
proxymode)
|
||||||
|
COMPREPLY=( $(compgen -W "system noproxy
|
||||||
|
manual" -- ${cur}) )
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@@ -2011,7 +2139,13 @@ _VBoxManage() {
|
|||||||
elif [[ "${prev}" == "--type" ]]; then
|
elif [[ "${prev}" == "--type" ]]; then
|
||||||
COMPREPLY=( $(compgen -W "gui sdl headless separate" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "gui sdl headless separate" -- ${cur}) )
|
||||||
else
|
else
|
||||||
|
local items=(--putenv -E)
|
||||||
|
_is_any_item_used "${items[@]}"
|
||||||
|
if [[ "${result}" == "ITIS" ]]; then
|
||||||
local items=(--type)
|
local items=(--type)
|
||||||
|
else
|
||||||
|
local items=(--type -E --putenv)
|
||||||
|
fi
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
fi
|
fi
|
||||||
@@ -2026,7 +2160,7 @@ _VBoxManage() {
|
|||||||
--comment --setuuid --setparentuuid --passthrough --tempeject
|
--comment --setuuid --setparentuuid --passthrough --tempeject
|
||||||
--nonrotational --discard --hotpluggable --bandwidthgroup
|
--nonrotational --discard --hotpluggable --bandwidthgroup
|
||||||
--forceunmount --server --target --tport --lun --encodedlun
|
--forceunmount --server --target --tport --lun --encodedlun
|
||||||
--username --password --initiator --intnet)
|
--username --password --initiator --intnet --passwordfile)
|
||||||
_get_excluded_items "${items[@]}"
|
_get_excluded_items "${items[@]}"
|
||||||
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
|
||||||
@@ -2052,6 +2186,9 @@ _VBoxManage() {
|
|||||||
--passthrough|--tempeject|--nonrotational|--discard)
|
--passthrough|--tempeject|--nonrotational|--discard)
|
||||||
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
||||||
;;
|
;;
|
||||||
|
--passwordfile)
|
||||||
|
COMPREPLY=( $(compgen -f -- ${cur}) )
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@@ -2154,6 +2291,66 @@ _VBoxManage() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
unattended)
|
||||||
|
if [[ COMP_CWORD -ge 3 ]]; then
|
||||||
|
subcommand="${COMP_WORDS[2]}"
|
||||||
|
if [[ $subcommand == "${cmd}" ]]; then
|
||||||
|
subcommand="${COMP_WORDS[3]}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
|
COMPREPLY=( $(compgen -W "detect install" -- ${cur}) )
|
||||||
|
else
|
||||||
|
case "${prev}" in
|
||||||
|
--iso|--password-file|--additions-iso|--validation-kit-iso|\
|
||||||
|
--script-template|--post-install-template)
|
||||||
|
COMPREPLY+=( $(compgen -f -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--auxiliary-base-path)
|
||||||
|
COMPREPLY+=( $(compgen -o dirnames -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--start-vm)
|
||||||
|
COMPREPLY=( $(compgen -W "gui sdl headless separate" \
|
||||||
|
-- ${cur}) )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ ${#COMPREPLY[@]} -eq 0 ]]; then
|
||||||
|
case "${subcommand}" in
|
||||||
|
detect)
|
||||||
|
local items=(--iso --machine-readable)
|
||||||
|
_get_excluded_items "${items[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
install)
|
||||||
|
if [[ ${prev} == ${subcommand} ]]; then
|
||||||
|
_vms_comp vms
|
||||||
|
else
|
||||||
|
local items=(--iso --user=login
|
||||||
|
--password=password --password-file
|
||||||
|
--full-user-name --key
|
||||||
|
--install-additions --no-install-additions
|
||||||
|
--additions-iso --install-txs --no-install-txs
|
||||||
|
--validation-kit-iso --locale --country
|
||||||
|
--time-zone --hostname
|
||||||
|
--package-selection-adjustment --dry-run
|
||||||
|
--auxiliary-base-path=path --image-index
|
||||||
|
--script-template --post-install-template
|
||||||
|
--post-install-command
|
||||||
|
--extra-install-kernel-parameters --language
|
||||||
|
--start-vm)
|
||||||
|
_get_excluded_items "${items[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
complete -o default -F _VBoxManage VBoxManage
|
complete -o default -F _VBoxManage VBoxManage
|
||||||
|
|||||||
Reference in New Issue
Block a user