3 Commits

Author SHA1 Message Date
1cde7fc57d Update to vbox 7.1.8 2026-03-24 20:22:58 +01:00
c051a4ed9d Merge pull request #15 from borekon/patch-1
added the ubuntu default bash completion folder
2025-06-09 09:37:26 +02:00
Alfonso
593ec245e5 added the ubuntu default bash completion folder
~/.local/share/bash-completion is the default if if $XDG_DATA_HOME is not set
2025-06-06 09:59:55 +02:00
2 changed files with 203 additions and 110 deletions

View File

@@ -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
7.0.22, and should contain all commands and their options. 7.1.8, 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:
@@ -42,6 +42,7 @@ be:
* ~/bash-completion.d/ * ~/bash-completion.d/
* /usr/local/etc/bash-completion.d/ * /usr/local/etc/bash-completion.d/
* /etc/bash_completion.d/ * /etc/bash_completion.d/
* ~/.local/share/bash-completion
* etc. * etc.
It's also okay to copy it into some directory, and place proper line in It's also okay to copy it into some directory, and place proper line in

View File

@@ -3,7 +3,7 @@
# Author: Roman 'gryf' Dobosz <gryf73@gmail.com> # Author: Roman 'gryf' Dobosz <gryf73@gmail.com>
# 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: 7.0.22 # Version: 7.1.8
_VBoxManage() { _VBoxManage() {
@@ -329,6 +329,9 @@ _VBoxManage() {
list=$(VBoxManage list | $VBMC_SED -e '1,2d' \ list=$(VBoxManage list | $VBMC_SED -e '1,2d' \
-e 's/VBoxManage list //' \ -e 's/VBoxManage list //' \
-e 's/[\[\]\|]/ /g' \ -e 's/[\[\]\|]/ /g' \
-e 's/ arm/ /g' \
-e 's/ x86 / /g' \
-e 's/platform-arch=/platform-arch/g' \
-e 's/|/ /g'|xargs echo) -e 's/|/ /g'|xargs echo)
COMPREPLY=( $(compgen -W "$list" -- ${cur}) ) COMPREPLY=( $(compgen -W "$list" -- ${cur}) )
} }
@@ -680,8 +683,8 @@ _VBoxManage() {
-- ${cur}) ) -- ${cur}) )
;; ;;
instance) instance)
COMPREPLY=( $(compgen -W "create info terminate start COMPREPLY=( $(compgen -W "clone create info metricdata
pause reset" -- ${cur}) ) metriclist terminate start pause reset" -- ${cur}) )
;; ;;
image) image)
COMPREPLY=( $(compgen -W "create info delete import COMPREPLY=( $(compgen -W "create info delete import
@@ -707,6 +710,18 @@ _VBoxManage() {
COMPREPLY=( $(compgen -W "$result" -- ${cur}) ) COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
fi fi
if [[ " ${COMP_WORDS[*]} " == *" instance clone"* ]]; then
items=(--id --clone-name)
_get_excluded_items "${items[@]}"
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
fi
if [[ " ${COMP_WORDS[*]} " == *" instance metricdata"* ]]; then
items=(--id --metric-name --metric-points)
_get_excluded_items "${items[@]}"
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
fi
if [[ " ${COMP_WORDS[*]} " == *" instance create"* ]]; then if [[ " ${COMP_WORDS[*]} " == *" instance create"* ]]; then
items=( --domain-name --display-name --shape --subnet items=( --domain-name --display-name --shape --subnet
--publicip --boot-disk-size --privateip --public-ssh-key --publicip --boot-disk-size --privateip --public-ssh-key
@@ -729,6 +744,7 @@ _VBoxManage() {
esac esac
fi fi
if [[ " ${COMP_WORDS[*]} " == *" instance info"* || if [[ " ${COMP_WORDS[*]} " == *" instance info"* ||
" ${COMP_WORDS[*]} " == *" instance metriclist"* ||
" ${COMP_WORDS[*]} " == *" instance terminate"* || " ${COMP_WORDS[*]} " == *" instance terminate"* ||
" ${COMP_WORDS[*]} " == *" instance start"* || " ${COMP_WORDS[*]} " == *" instance start"* ||
" ${COMP_WORDS[*]} " == *" instance pause"* ]]; then " ${COMP_WORDS[*]} " == *" instance pause"* ]]; then
@@ -821,7 +837,7 @@ _VBoxManage() {
_vms_comp runningvms _vms_comp runningvms
else else
local items=( acpipowerbutton acpisleepbutton addencpassword local items=( acpipowerbutton acpisleepbutton addencpassword
audioin audioout autostart-delayseconds autostart-enabled1 audioin audioout autostart-delay autostart-enabled1
autostart-enabled2 autostart-enabled3 autostart-enabled4 autostart-enabled2 autostart-enabled3 autostart-enabled4
changeuartmode1 changeuartmode2 clipboard cpuexecutioncap changeuartmode1 changeuartmode2 clipboard cpuexecutioncap
draganddrop guestmemoryballoon keyboardputfile draganddrop guestmemoryballoon keyboardputfile
@@ -887,8 +903,8 @@ _VBoxManage() {
recording) recording)
[[ ${prev} == "recording" ]] && \ [[ ${prev} == "recording" ]] && \
COMPREPLY=( $(compgen -W "filename maxfilesize COMPREPLY=( $(compgen -W "filename maxfilesize
maxtime off on screens videofps videorate maxtime off on opts screens start stop
videores" -- ${cur}) ) videofps videorate videores" -- ${cur}) )
case "${prev}" in case "${prev}" in
screens) screens)
COMPREPLY=( $(compgen -W "all none COMPREPLY=( $(compgen -W "all none
@@ -1046,7 +1062,8 @@ _VBoxManage() {
createvm) createvm)
items=( --basefolder --cipher --default --groups --name --ostype items=( --basefolder --cipher --default --groups --name --ostype
--password-id --password --register --uuid ) --password-id --password --platform-architecture --register
--uuid )
if [[ ${prev} == ${cmd} ]]; then if [[ ${prev} == ${cmd} ]]; then
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) ) COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
else else
@@ -1068,6 +1085,9 @@ _VBoxManage() {
--password) --password)
COMPREPLY=( $(compgen -f -- ${cur}) ) COMPREPLY=( $(compgen -f -- ${cur}) )
;; ;;
--platform-architecture)
COMPREPLY=( $(compgen -W "x86 arm" -- ${cur}) )
;;
esac esac
fi fi
;; ;;
@@ -1421,8 +1441,8 @@ _VBoxManage() {
;; ;;
guestcontrol) guestcontrol)
local items=( run start copyfrom copyto mkdir rmdir rm mv mktemp local items=( run start copyfrom copyto fsinfo mkdir mount rmdir rm
stat list closeprocess closesession updatega watch ) mv mktemp stat list closeprocess closesession updatega watch )
if [[ ${prev} == ${cmd} ]]; then if [[ ${prev} == ${cmd} ]]; then
_vms_comp runningvms _vms_comp runningvms
@@ -1432,7 +1452,7 @@ _VBoxManage() {
if [[ " ${items[*]} " == *" $subcommand "* ]]; then if [[ " ${items[*]} " == *" $subcommand "* ]]; then
case "${subcommand}" in case "${subcommand}" in
run) run)
items=( --arg0 --domain --dos2unix --exe items=( --arg0 --cwd --domain --dos2unix --exe
--ignore-operhaned-processes --profile --putenv --ignore-operhaned-processes --profile --putenv
--quiet --timeout --unix2dos --unquoted-args --quiet --timeout --unix2dos --unquoted-args
--username --verbose -- ) --username --verbose -- )
@@ -1452,7 +1472,7 @@ _VBoxManage() {
;; ;;
start) start)
items=( --arg0 --domain --exe items=( --arg0 --cwd --domain --exe
--ignore-orphaned-processes --profile --putenv --ignore-orphaned-processes --profile --putenv
--quiet --timeout --unquoted-args --username --quiet --timeout --unquoted-args --username
--verbose -- ) --verbose -- )
@@ -1478,6 +1498,19 @@ _VBoxManage() {
COMPREPLY=( $(compgen -W "$result" -- ${cur}) ) COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
;; ;;
fsinfo)
items=( --domain --human-readable --total
--username )
[[ " ${COMP_WORDS[*]} " != *" --password "* ||
" ${COMP_WORDS[*]} " != *" --passwordfile "* ]] &&
items+=(--passwordfile --password)
[[ " ${COMP_WORDS[*]} " != *" --quiet"* ||
" ${COMP_WORDS[*]} " != *" --verbose"* ]] &&
items+=( --quiet --verbose )
_get_excluded_items "${items[@]}"
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
;;
mkdir) mkdir)
items=( --domain --mode --parents --quiet items=( --domain --mode --parents --quiet
--username --verbose ) --username --verbose )
@@ -1489,6 +1522,16 @@ _VBoxManage() {
COMPREPLY=( $(compgen -W "$result" -- ${cur}) ) COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
;; ;;
mount)
items=( --username --verbose )
[[ " ${COMP_WORDS[*]} " != *" --password "* ||
" ${COMP_WORDS[*]} " != *" --passwordfile "* ]] &&
items+=(--passwordfile --password)
_get_excluded_items "${items[@]}"
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
;;
rmdir) rmdir)
items=( --domain --quiet --recursive --username items=( --domain --quiet --recursive --username
--verbose ) --verbose )
@@ -1609,6 +1652,9 @@ _VBoxManage() {
--passwordfile) --passwordfile)
COMPREPLY=( $(compgen -f -- ${cur}) ) COMPREPLY=( $(compgen -f -- ${cur}) )
;; ;;
--cwd)
COMPREPLY=( $(compgen -f -- ${cur}) )
;;
esac esac
else else
[[ ${#COMPREPLY[@]} -eq 0 ]] && \ [[ ${#COMPREPLY[@]} -eq 0 ]] && \
@@ -1755,8 +1801,11 @@ _VBoxManage() {
--long|-l) --long|-l)
COMPREPLY=( $(compgen -W "-s --sorted" -- ${cur}) ) COMPREPLY=( $(compgen -W "-s --sorted" -- ${cur}) )
;; ;;
--platform-arch)
COMPREPLY=( $(compgen -W "x86 arm" -- ${cur}) )
;;
*) *)
COMPREPLY=( $(compgen -W "-l --long -s --sorted" -- ${cur}) ) COMPREPLY=( $(compgen -W "-l --long -s --sorted --platform-arch" -- ${cur}) )
;; ;;
esac esac
fi fi
@@ -1907,7 +1956,7 @@ _VBoxManage() {
modifynvram) modifynvram)
items=( changevar deletevar enrollmssignatures enrollorclpk items=( changevar deletevar enrollmssignatures enrollorclpk
enrollpk enrollmok inituefivarstore listvars queryvar ) enrollpk enrollmok inituefivarstore listvars queryvar secureboot)
# _get_excluded_items "${items[@]}" # _get_excluded_items "${items[@]}"
# COMPREPLY=( $(compgen -W "$result" -- ${cur}) ) # COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
@@ -1955,45 +2004,58 @@ _VBoxManage() {
listvars) listvars)
COMPREPLY=( ) COMPREPLY=( )
;; ;;
secureboot)
COMPREPLY=( $(compgen -W "--enable --disable" \
-- ${cur}) )
;;
esac esac
else else
[[ ${#COMPREPLY[@]} -eq 0 ]] && \ [[ ${#COMPREPLY[@]} -eq 0 ]] && \
COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) ) COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
fi fi
case "${prev}" in
--enable)
COMPREPLY=( )
;;
--disable)
COMPREPLY=( )
;;
esac
fi fi
;; ;;
modifyvm) modifyvm)
items=( --accelerate-2d-video --accelerate-3d --acpi --apic --audio items=(--accelerate-2d-video --accelerate-3d --acpi --apic --audio
--audio-codec --audio-controller --audio-in --audio-out --audio-codec --audio-controller --audio-in --audio-out
--autostart-delay --autostart-enabled --bios-apic --autostart-delay --autostart-enabled --boot1 --boot2 --boot3
--bios-bootm-enu --bios-logo-display-time --bios-logo-fade-in --boot4 --bridge-adapter1 --bridge-adapter2 --bridge-adapter3
--bios-logo-fade-out --bios-logo-image-path --bios-pxe-debug
--bios-system-time-offset --boot1 --boot2 --boot3 --boot4
--bridge-adapter1 --bridge-adapter2 --bridge-adapter3
--bridge-adapter4 --bridge-adapter5 --bridge-adapter6 --bridge-adapter4 --bridge-adapter5 --bridge-adapter6
--bridge-adapter7 --bridge-adapter8 --cable-connected1 --bridge-adapter7 --bridge-adapter8 --cable-connected1
--cable-connected2 --cable-connected3 --cable-connected4 --cable-connected2 --cable-connected3 --cable-connected4
--cable-connected5 --cable-connected6 --cable-connected7 --cable-connected5 --cable-connected6 --cable-connected7
--cloud-network1 --cloud-network2 --cloud-network3 --cable-connected8 --chipset --clipboard-file-transfers
--cloud-network4 --cable-connected8 --chipset --clipboard-mode --clipboard-mode --cloud-network1 --cloud-network2
--cpu-profile --cpu-execution-cap --cpu-hotplug --cloud-network3 --cloud-network4 --cpu-execution-cap
--cpuid-portability-level --cpuid-remove --cpuid-set --cpu-hotplug --cpu-profile --cpuid-portability-level
--cpuid-remove-all --cpus --default-frontend --description --cpuid-remove --cpuid-remove-all --cpuid-set --cpus
--drag-and-drop --firmware --graphicscontroller --groups --default-frontend --description --drag-and-drop --firmware
--guest-debug-address --guest-debug-io-provider --firmware-apic --firmware-boot-menu
--guest-debug-port --guest-debug-provider --guest-memory-balloon --firmware-logo-display-time --firmware-logo-fade-in
--hardware-uuid --host-only-adapter1 --host-only-adapter2 --firmware-logo-fade-out --firmware-logo-image-path
--host-only-adapter3 --host-only-adapter4 --host-only-adapter5 --firmware-pxe-debug --firmware-system-time-offset
--host-only-adapter6 --host-only-adapter7 --host-only-adapter8 --graphicscontroller --groups --guest-debug-address
--host-only-net1 --host-only-net2 --host-only-net3 --guest-debug-io-provider --guest-debug-port
--host-only-net4 --host-only-net5 --host-only-net6 --guest-debug-provider --guest-memory-balloon --hardware-uuid
--host-only-net7 --host-only-net8 --hpet --hwvirtex --host-only-adapter1 --host-only-adapter2 --host-only-adapter3
--ibpb-on-vm-entry --ibpb-on-vm-exit --icon-file --intnet1 --host-only-adapter4 --host-only-adapter5 --host-only-adapter6
--intnet2 --intnet3 --intnet4 --intnet5 --intnet6 --intnet7 --host-only-adapter7 --host-only-adapter8 --host-only-net1
--intnet8 --ioapic --iommu --keyboard --l1d-flush-on-sched --host-only-net2 --host-only-net3 --host-only-net4
--l1d-flush-on-vm-entry --large-pages --long-mode --lpt1 --host-only-net5 --host-only-net6 --host-only-net7
--lpt-mode1 --mac-address1 --mac-address2 --mac-address3 --host-only-net8 --hwvirtex --ibpb-on-vm-entry --ibpb-on-vm-exit
--icon-file --intnet1 --intnet2 --intnet3 --intnet4 --intnet5
--intnet6 --intnet7 --intnet8 --ioapic --iommu --keyboard
--l1d-flush-on-sched --l1d-flush-on-vm-entry --large-pages
--lpt-mode1 --lpt1 --mac-address1 --mac-address2 --mac-address3
--mac-address4 --mac-address5 --mac-address6 --mac-address7 --mac-address4 --mac-address5 --mac-address6 --mac-address7
--mac-address8 --mds-clear-on-sched --mds-clear-on-vm-entry --mac-address8 --mds-clear-on-sched --mds-clear-on-vm-entry
--memory --monitor-count --mouse --name --nat-alias-mode1 --memory --monitor-count --mouse --name --nat-alias-mode1
@@ -2022,51 +2084,51 @@ _VBoxManage() {
--nat-pf1 --nat-pf2 --nat-pf3 --nat-pf4 --nat-pf5 --nat-pf6 --nat-pf1 --nat-pf2 --nat-pf3 --nat-pf4 --nat-pf5 --nat-pf6
--nat-pf7 --nat-pf8 --nat-settings1 --nat-settings2 --nat-pf7 --nat-pf8 --nat-settings1 --nat-settings2
--nat-settings3 --nat-settings4 --nat-settings5 --nat-settings6 --nat-settings3 --nat-settings4 --nat-settings5 --nat-settings6
--nat-settings7 --nat-settings8 --nat-tftp-file1 --nat-tftp-file2 --nat-settings7 --nat-settings8 --nat-tftp-file1
--nat-tftp-file3 --nat-tftp-file4 --nat-tftp-file5 --nat-tftp-file2 --nat-tftp-file3 --nat-tftp-file4
--nat-tftp-file6 --nat-tftp-file7 --nat-tftp-file8 --nat-tftp-file5 --nat-tftp-file6 --nat-tftp-file7
--nat-tftp-prefix1 --nat-tftp-prefix2 --nat-tftp-prefix3 --nat-tftp-file8 --nat-tftp-prefix1 --nat-tftp-prefix2
--nat-tftp-prefix4 --nat-tftp-prefix5 --nat-tftp-prefix6 --nat-tftp-prefix3 --nat-tftp-prefix4 --nat-tftp-prefix5
--nat-tftp-prefix7 --nat-tftp-prefix8 --nat-tftp-server1 --nat-tftp-prefix6 --nat-tftp-prefix7 --nat-tftp-prefix8
--nat-tftp-server2 --nat-tftp-server3 --nat-tftp-server4 --nat-tftp-server1 --nat-tftp-server2 --nat-tftp-server3
--nat-tftp-server5 --nat-tftp-server6 --nat-tftp-server7 --nat-tftp-server4 --nat-tftp-server5 --nat-tftp-server6
--nat-tftp-server8 --nested-hw-virt --nested-paging --nic1 --nic2 --nat-tftp-server7 --nat-tftp-server8 --nested-hw-virt
--nic3 --nic4 --nic5 --nic6 --nic7 --nic8 --nic-bandwidth-group1 --nested-paging --nic-bandwidth-group1 --nic-boot-prio1
--nic-boot-prio1 --nic-generic-drv1 --nic-generic-drv2 --nic-generic-drv1 --nic-generic-drv2 --nic-generic-drv3
--nic-generic-drv3 --nic-generic-drv4 --nic-generic-drv5 --nic-generic-drv4 --nic-generic-drv5 --nic-generic-drv6
--nic-generic-drv6 --nic-generic-drv7 --nic-generic-drv8 --nic-generic-drv7 --nic-generic-drv8 --nic-promisc1
--nic-promisc1 --nic-promisc2 --nic-promisc3 --nic-promisc4 --nic-promisc2 --nic-promisc3 --nic-promisc4 --nic-promisc5
--nic-promisc5 --nic-promisc6 --nic-promisc7 --nic-promisc8 --nic-promisc6 --nic-promisc7 --nic-promisc8 --nic-property1
--nic-property1 --nic-property2 --nic-property3 --nic-property4 --nic-property2 --nic-property3 --nic-property4 --nic-property5
--nic-property5 --nic-property6 --nic-property7 --nic-property8 --nic-property6 --nic-property7 --nic-property8 --nic-speed1
--nic-speed1 --nic-speed2 --nic-speed3 --nic-speed4 --nic-speed5 --nic-speed2 --nic-speed3 --nic-speed4 --nic-speed5 --nic-speed6
--nic-speed6 --nic-speed7 --nic-speed8 --nic-trace1 --nic-trace2 --nic-speed7 --nic-speed8 --nic-trace-file1 --nic-trace-file2
--nic-trace3 --nic-trace4 --nic-trace5 --nic-trace6 --nic-trace7
--nic-trace8 --nic-trace-file1 --nic-trace-file2
--nic-trace-file3 --nic-trace-file4 --nic-trace-file5 --nic-trace-file3 --nic-trace-file4 --nic-trace-file5
--nic-trace-file6 --nic-trace-file7 --nic-trace-file8 --nic-type1 --nic-trace-file6 --nic-trace-file7 --nic-trace-file8
--nic-type2 --nic-type3 --nic-type4 --nic-type5 --nic-type6 --nic-trace1 --nic-trace2 --nic-trace3 --nic-trace4 --nic-trace5
--nic-type7 --nic-type8 --os-type --pae --page-fusion --nic-trace6 --nic-trace7 --nic-trace8 --nic-type1 --nic-type2
--paravirt-debug --paravirt-provider --pci-attach --pci-detach --nic-type3 --nic-type4 --nic-type5 --nic-type6 --nic-type7
--plug-cpu --recording --recording-file --recording-max-size --nic-type8 --nic1 --nic2 --nic3 --nic4 --nic5 --nic6 --nic7
--nic8 --os-type --page-fusion --paravirt-debug
--paravirt-provider --pci-attach --pci-detach --plug-cpu
--recording --recording-file --recording-max-size
--recording-max-time --recording-opts --recording-screens --recording-max-time --recording-opts --recording-screens
--recording-video-fps --recording-video-rate --recording-video-fps --recording-video-rate
--recording-video-res --rtc-use-utc --snapshot-folder --spec-ctrl --recording-video-res --rtc-use-utc --snapshot-folder
--system-uuid-le --teleporter --teleporter-address --spec-ctrl --system-uuid-le --teleporter --teleporter-address
--teleporter-password --teleporter-password-file --teleporter-password --teleporter-password-file
--teleporter-port --testing-cfg-dwordidx --testing-enabled --teleporter-port --testing-cfg-dwordidx --testing-enabled
--testing-mmio --tpm-location --tpm-type --testing-mmio --tpm-location --tpm-type
--tracing-allow-vm-access --tracing-config --tracing-enabled --tracing-allow-vm-access --tracing-config --tracing-enabled
--triple-fault-reset --uart1 --uart2 --uart-mode1 --uart-mode2 --triple-fault-reset --uart-mode1 --uart-mode2 --uart-type1
--uart-type1 --uart-type2 --unplug-cpu --usb-card-reader --uart-type2 --uart1 --uart2 --unplug-cpu --usb-card-reader
--usb-ehci --usb-ohci --usb-rename --usb-xhci --usb-ehci --usb-ohci --usb-rename --usb-xhci
--virt-vmsave-vmload --vm-process-priority --vram --vrde --virt-vmsave-vmload --vm-execution-engine --vm-process-priority
--vrde-address --vrde-auth-library --vrde-auth-type --vram --vrde --vrde-address --vrde-auth-library
--vrde-extpack --vrde-multi-con --vrde-port --vrde-property --vrde-auth-type --vrde-extpack --vrde-multi-con --vrde-port
--vrde-reuse-con --vrde-video-channel --vrde-property --vrde-reuse-con --vrde-video-channel
--vrde-video-channel-quality --vtx-ux --vtx-vpid --x2apic ) --vrde-video-channel-quality --x86-hpet --x86-long-mode
--x86-pae --x86-vtx-ux --x86-vtx-vpid --x86-x2apic)
if [[ ${prev} == ${cmd} ]]; then if [[ ${prev} == ${cmd} ]]; then
_vms_comp vms _vms_comp vms
@@ -2086,28 +2148,34 @@ _VBoxManage() {
--accelerate-2d-video|--accelerate-3d|--acpi|--apic|\ --accelerate-2d-video|--accelerate-3d|--acpi|--apic|\
--audio-in|--audio-out|--autostart-enabled|\ --audio-in|--audio-out|--autostart-enabled|\
--bios-logo-fade-in|--bios-logo-fade-out|--bios-pxe-debug|\
--cable-connected1|--cable-connected2|--cable-connected3|\ --cable-connected1|--cable-connected2|--cable-connected3|\
--cable-connected4|--cable-connected5|--cable-connected6|\ --cable-connected4|--cable-connected5|--cable-connected6|\
--cable-connected7|--cable-connected8|--cpu-hotplug|--hpet|\ --cable-connected7|--cable-connected8|--cpu-hotplug|\
--hwvirtex|--ibpb-on-vm-entry|--ibpb-on-vm-exit|--ioapic|\ --firmware-logo-fade-in|--firmware-logo-fade-out|\
--l1d-flush-on-sched|--l1d-flush-on-vm-entry|--large-pages|\ --firmware-pxe-debug|--hwvirtex|--ibpb-on-vm-entry|\
--long-mode|--mds-clear-on-sched|--mds-clear-on-vm-entry|\ --ibpb-on-vm-exit|--ioapic|--l1d-flush-on-sched|\
--nat-dns-host-resolver[1-8]|--nat-dns-pass-domain[1-8]|\ --l1d-flush-on-vm-entry|--large-pages|--mds-clear-on-sched|\
--nat-dns-proxy[1-8]|--nat-localhostreachable[1-8]|\ --mds-clear-on-vm-entry|--nat-dns-host-resolver[1-8]|\
--nested-hw-virt|--nested-paging|--nic-trace[1-8]|--pae|\ --nat-dns-pass-domain[1-8]|--nat-dns-proxy[1-8]|\
--page-fusion|--recording|--rtc-use-utc|--spec-ctrl|\ --nat-localhostreachable[1-8]|--nested-hw-virt|\
--system-uuid-le|--teleporter|--testing-enabled|\ --nested-paging|--nic-trace[1-8]|--page-fusion|--recording|\
--testing-mmio|--tracing-allow-vm-access|--tracing-enabled|\ --rtc-use-utc|--spec-ctrl|--system-uuid-le|--teleporter|\
--triple-fault-reset|--usb-card-reader|--usb-ehci|\ --testing-enabled|--testing-mmio|--tracing-allow-vm-access|\
--usb-ohci|--usb-xhci|--virt-vmsave-vmload|--vrde-multi-con|\ --tracing-enabled|--triple-fault-reset|--usb-card-reader|\
--vrde-reuse-con|--vrde-video-channel|--vrde|--vtx-ux|\ --usb-ehci|--usb-ohci|--usb-xhci|--virt-vmsave-vmload|--vrde|\
--vtx-vpid|--x2apic) --vrde-multi-con|--vrde-reuse-con|--vrde-video-channel|\
--x86-hpet|--x86-long-mode|--x86-pae|--x86-vtx-ux|\
--x86-vtx-vpid|--x86-x2apic)
COMPREPLY=( $(compgen -W "on off" -- ${cur}) ) COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
;; ;;
--clipboard-file-transfers)
COMPREPLY=( $(compgen -W "disabled enabled" -- ${cur}) )
;;
--graphicscontroller) --graphicscontroller)
COMPREPLY=( $(compgen -W "none vboxvga vmsvga vboxsvga" \ COMPREPLY=( $(compgen -W \
"none vboxvga vmsvga vboxsvga qemuramfb" \
-- ${cur}) ) -- ${cur}) )
;; ;;
@@ -2117,10 +2185,10 @@ _VBoxManage() {
;; ;;
--chipset) --chipset)
COMPREPLY=( $(compgen -W "ich9 piix3" -- ${cur}) ) COMPREPLY=( $(compgen -W "ich9 piix3 armv8virtual" -- ${cur}) )
;; ;;
--bios-boot-menu) --firmware-boot-menu)
COMPREPLY=( $(compgen -W "disabled menuonly COMPREPLY=( $(compgen -W "disabled menuonly
messageandmenu" -- ${cur}) ) messageandmenu" -- ${cur}) )
;; ;;
@@ -2263,13 +2331,13 @@ _VBoxManage() {
-- ${cur}) ) -- ${cur}) )
;; ;;
--bios-apic) --firmware-apic)
COMPREPLY=( $(compgen -W "disabled apic x2apic" \ COMPREPLY=( $(compgen -W "disabled apic x2apic" \
-- ${cur}) ) -- ${cur}) )
;; ;;
--teleporter-password-file|--icon-file|--recording-file|\ --teleporter-password-file|--icon-file|--recording-file|\
--bios-logo-image-path|--nic-trace-file[1-8]|\ --firmware-logo-image-path|--nic-trace-file[1-8]|\
--nat-tftp-file[1-8]) --nat-tftp-file[1-8])
COMPREPLY=( $(compgen -f -- ${cur}) ) COMPREPLY=( $(compgen -f -- ${cur}) )
;; ;;
@@ -2279,6 +2347,12 @@ _VBoxManage() {
-- ${cur}) ) -- ${cur}) )
;; ;;
--vm-execution-engine)
COMPREPLY=( $(compgen -W \
"default hm hwvirt nem native-api interpreter recompiler" \
-- ${cur}) )
;;
--recording-screens) --recording-screens)
COMPREPLY=( $(compgen -W "all none" -- ${cur}) ) COMPREPLY=( $(compgen -W "all none" -- ${cur}) )
;; ;;
@@ -2447,10 +2521,10 @@ _VBoxManage() {
;; ;;
sharedfolder) sharedfolder)
items=(add remove) items=(add remove modify)
subcommand=${COMP_WORDS[2]} subcommand=${COMP_WORDS[2]}
case "${prev}" in case "${prev}" in
add|remove) add|remove|modify)
_vms_comp vms _vms_comp vms
;; ;;
--hostpath) --hostpath)
@@ -2462,6 +2536,17 @@ _VBoxManage() {
_sharedfolder_comp "${name}" _sharedfolder_comp "${name}"
fi fi
;; ;;
--readonly)
COMPREPLY=( $(compgen -W "true false" -- ${cur}) )
;;
--auto-mount-point)
COMPREPLY=( $(compgen -o dirnames -- ${cur}) )
;;
--symlink-policy)
COMPREPLY=( $(compgen -W "forbidden subtree relative
any" -- ${cur}) )
;;
esac esac
if [[ ${#COMPREPLY[@]} -eq 0 ]]; then if [[ ${#COMPREPLY[@]} -eq 0 ]]; then
case "${subcommand}" in case "${subcommand}" in
@@ -2476,6 +2561,12 @@ _VBoxManage() {
_get_excluded_items "${items[@]}" _get_excluded_items "${items[@]}"
COMPREPLY=( $(compgen -W "$result" -- ${cur}) ) COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
;; ;;
modify)
items=(--readonly --automount --auto-mount-point
--symlink-policy)
_get_excluded_items "${items[@]}"
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
;;
esac esac
fi fi
@@ -2731,17 +2822,18 @@ _VBoxManage() {
if [[ ${prev} == ${subcommand} ]]; then if [[ ${prev} == ${subcommand} ]]; then
_vms_comp vms _vms_comp vms
else else
local items=(--additions-iso local items=(--additions-iso --admin-password
--auxiliary-base-path --country --dry-run --auxiliary-base-path --country --dry-run
--extra-install-kernel-parameters --extra-install-kernel-parameters
--full-user-name --hostname --image-index --full-user-name --hostname --image-index
--install-additions --install-txs --iso --key --install-additions --install-txs --iso
--language --locale --no-install-additions --key --language --locale
--no-install-txs --package-selection-adjustment --no-install-additions --no-install-txs
--password --password-file --package-selection-adjustment
--post-install-command --post-install-template --password-file --post-install-command
--script-template --start-vm --time-zone --user --post-install-template --script-template
--validation-kit-iso) --start-vm --time-zone --user
--user-password --validation-kit-iso)
_get_excluded_items "${items[@]}" _get_excluded_items "${items[@]}"
COMPREPLY=( $(compgen -W "$result" -- ${cur}) ) COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
fi fi