mirror of
https://github.com/gryf/vboxmanage-bash-completion.git
synced 2025-12-17 11:30:23 +01:00
Added modifyvm command
This commit is contained in:
38
README
38
README
@@ -5,40 +5,4 @@ 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
|
||||||
4.3.18, and supports commands:
|
4.3.18, and supports all commands (in some extent ;)).
|
||||||
|
|
||||||
- adoptstate
|
|
||||||
- bandwidthctl
|
|
||||||
- clonehd
|
|
||||||
- clonevm
|
|
||||||
- closemedium
|
|
||||||
- controlvm
|
|
||||||
- convertfromraw
|
|
||||||
- createhd
|
|
||||||
- createvm
|
|
||||||
- debugvm
|
|
||||||
- dhcpserver
|
|
||||||
- discardstate
|
|
||||||
- export
|
|
||||||
- extpack
|
|
||||||
- getextradata
|
|
||||||
- guestcontrol
|
|
||||||
- guestproperty
|
|
||||||
- hostonlyif
|
|
||||||
- import
|
|
||||||
- list
|
|
||||||
- metrics
|
|
||||||
- modifyhd
|
|
||||||
- natnetwork
|
|
||||||
- registervm
|
|
||||||
- setextradata
|
|
||||||
- setproperty
|
|
||||||
- sharedfolder
|
|
||||||
- showhdinfo
|
|
||||||
- showvminfo
|
|
||||||
- snapshot
|
|
||||||
- startvm
|
|
||||||
- storageattach
|
|
||||||
- storagectl
|
|
||||||
- unregistervm
|
|
||||||
- usbfilter
|
|
||||||
|
|||||||
273
VBoxManage
273
VBoxManage
@@ -1,13 +1,6 @@
|
|||||||
# bash command-line completion for virtualbox
|
# bash command-line completion for VBoxManage command
|
||||||
#
|
#
|
||||||
# This version of bash completion was born due to the need of fast and easy
|
# Author: Roman 'gryf' Dobosz <gryf73@gmail.com>
|
||||||
# access to the maze of commands and parameters VBoxManage provides. Based on
|
|
||||||
# Sebastian[1] script I've managed to improve it and adapt to newest stable
|
|
||||||
# version available in Gentoo Portage.
|
|
||||||
#
|
|
||||||
# [1] Sebastian T. Hafner <sonix@own-hero.net>
|
|
||||||
#
|
|
||||||
# [ ] modifyvm
|
|
||||||
|
|
||||||
_VBoxManage() {
|
_VBoxManage() {
|
||||||
local cur prev opts cmd subcommand tmp items name index result
|
local cur prev opts cmd subcommand tmp items name index result
|
||||||
@@ -367,13 +360,50 @@ _VBoxManage() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_bridgedif_comp() {
|
||||||
|
local cur=$1
|
||||||
|
local list
|
||||||
|
local item
|
||||||
|
|
||||||
|
list=$(VBoxManage list bridgedifs | \
|
||||||
|
egrep ^Name: | \
|
||||||
|
sed 's/Name:\s\+//' | \
|
||||||
|
sed 's/\s/\\ /g'| \
|
||||||
|
tr '\n' '|' | \
|
||||||
|
sed 's/|$//')
|
||||||
|
IFS='|' read -ra list <<< "$list"
|
||||||
|
|
||||||
|
for item in "${list[@]}"
|
||||||
|
do
|
||||||
|
[[ ${item^^} == ${cur^^}* ]] && COMPREPLY+=("$item")
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
_intnet_comp() {
|
||||||
|
local cur=$1
|
||||||
|
local list
|
||||||
|
local item
|
||||||
|
|
||||||
|
list=$(VBoxManage list intnets| \
|
||||||
|
egrep ^Name: | \
|
||||||
|
sed 's/Name:\s\+//' | \
|
||||||
|
sed 's/\s/\\ /g'| \
|
||||||
|
tr '\n' '|' | \
|
||||||
|
sed 's/|$//')
|
||||||
|
IFS='|' read -ra list <<< "$list"
|
||||||
|
|
||||||
|
for item in "${list[@]}"
|
||||||
|
do
|
||||||
|
[[ ${item^^} == ${cur^^}* ]] && COMPREPLY+=("$item")
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
COMP_WORDBREAKS=${COMP_WORDBREAKS//|/} # remove pipe from comp word breaks
|
COMP_WORDBREAKS=${COMP_WORDBREAKS//|/} # remove pipe from comp word breaks
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
|
|
||||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||||
lastbutone="${COMP_WORDS[COMP_CWORD-2]}"
|
|
||||||
if [[ COMP_CWORD -ge 2 ]]; then
|
if [[ COMP_CWORD -ge 2 ]]; then
|
||||||
cmd="${COMP_WORDS[1]}"
|
cmd="${COMP_WORDS[1]}"
|
||||||
if [[ $cmd == "-q" ]]; then
|
if [[ $cmd == "-q" ]]; then
|
||||||
@@ -1195,6 +1225,229 @@ _VBoxManage() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
modifyvm)
|
modifyvm)
|
||||||
|
items=(--name --groups --description --ostype --iconfile --memory
|
||||||
|
--pagefusion --vram --acpi --pciattach --pcidetach --ioapic --hpet
|
||||||
|
--triplefaultreset --hwvirtex --nestedpaging --largepages --vtxvpid
|
||||||
|
--vtxux --pae --longmode --synthcpu --cpuidset --cpuidremove
|
||||||
|
--cpuidremoveall --hardwareuuid --cpus --cpuhotplug --plugcpu
|
||||||
|
--unplugcpu --cpuexecutioncap --rtcuseutc --graphicscontroller
|
||||||
|
--monitorcount --accelerate3d --accelerate2dvideo --firmware
|
||||||
|
--chipset --bioslogofadein --bioslogofadeout --bioslogodisplaytime
|
||||||
|
--bioslogoimagepath --biosbootmenu --biossystemtimeoffset
|
||||||
|
--biospxedebug --boot1 --boot2 --boot3 --boot4 --nicbootprio1
|
||||||
|
--nicbandwidthgroup1 --bridgeadapter1 --bridgeadapter2
|
||||||
|
--bridgeadapter3 --bridgeadapter4 --bridgeadapter5 --bridgeadapter6
|
||||||
|
--bridgeadapter7 --bridgeadapter8 --hostonlyadapter1
|
||||||
|
--hostonlyadapter2 --hostonlyadapter3 --hostonlyadapter4
|
||||||
|
--hostonlyadapter5 --hostonlyadapter6 --hostonlyadapter7
|
||||||
|
--hostonlyadapter8 --intnet1 --intnet2 --intnet3 --intnet4 --intnet5
|
||||||
|
--intnet6 --intnet7 --intnet8 --nat-network1 --nicgenericdrv1
|
||||||
|
--natnet1 --natsettings1 --nat-network2 --nicgenericdrv2 --natnet2
|
||||||
|
--natsettings2 --nat-network3 --nicgenericdrv3 --natnet3
|
||||||
|
--natsettings3 --nat-network4 --nicgenericdrv4 --natnet4
|
||||||
|
--natsettings4 --nat-network5 --nicgenericdrv5 --natnet5
|
||||||
|
--natsettings5 --nat-network6 --nicgenericdrv6 --natnet6
|
||||||
|
--natsettings6 --nat-network7 --nicgenericdrv7 --natnet7
|
||||||
|
--natsettings7 --nat-network8 --nicgenericdrv8 --natnet8
|
||||||
|
--natsettings8 --natpf1 --nic1 --nicpromisc1 --nicproperty1
|
||||||
|
--nictrace1 --nictracefile1 --natpf2 --nic2 --nicpromisc2
|
||||||
|
--nicproperty2 --nictrace2 --nictracefile2 --natpf3 --nic3
|
||||||
|
--nicpromisc3 --nicproperty3 --nictrace3 --nictracefile3 --natpf4
|
||||||
|
--nic4 --nicpromisc4 --nicproperty4 --nictrace4 --nictracefile4
|
||||||
|
--natpf5 --nic5 --nicpromisc5 --nicproperty5 --nictrace5
|
||||||
|
--nictracefile5 --natpf6 --nic6 --nicpromisc6 --nicproperty6
|
||||||
|
--nictrace6 --nictracefile6 --natpf7 --nic7 --nicpromisc7
|
||||||
|
--nicproperty7 --nictrace7 --nictracefile7 --natpf8 --nic8
|
||||||
|
--nicpromisc8 --nicproperty8 --nictrace8 --nictype1 --nictype2
|
||||||
|
--nictype3 --nictype4 --nictype5 --nictype6 --nictype7 --nictype8
|
||||||
|
--cableconnected1 --cableconnected2 --cableconnected3
|
||||||
|
--cableconnected4 --cableconnected5 --cableconnected6
|
||||||
|
--cableconnected7 --cableconnected8 --nicspeed1 --nicspeed2
|
||||||
|
--nicspeed3 --nicspeed4 --nicspeed5 --nicspeed6 --nicspeed7
|
||||||
|
--nicspeed8 --nattftpprefix1 --nattftpprefix2 --nattftpprefix3
|
||||||
|
--nattftpprefix4 --nattftpprefix5 --nattftpprefix6 --nattftpprefix7
|
||||||
|
--nattftpprefix8 --nattftpfile1 --nattftpfile2 --nattftpfile3
|
||||||
|
--nattftpfile4 --nattftpfile5 --nattftpfile6 --nattftpfile7
|
||||||
|
--nattftpfile8 --nattftpserver1 --nattftpserver2 --nattftpserver3
|
||||||
|
--nattftpserver4 --nattftpserver5 --nattftpserver6 --nattftpserver7
|
||||||
|
--nattftpserver8 --natbindip1 --natbindip2 --natbindip3 --natbindip4
|
||||||
|
--natbindip5 --natbindip6 --natbindip7 --natbindip8
|
||||||
|
--natdnspassdomain1 --natdnspassdomain2 --natdnspassdomain3
|
||||||
|
--natdnspassdomain4 --natdnspassdomain5 --natdnspassdomain6
|
||||||
|
--natdnspassdomain7 --natdnspassdomain8 --natdnsproxy1
|
||||||
|
--natdnsproxy2 --natdnsproxy3 --natdnsproxy4 --natdnsproxy5
|
||||||
|
--natdnsproxy6 --natdnsproxy7 --natdnsproxy8 --natdnshostresolver1
|
||||||
|
--natdnshostresolver2 --natdnshostresolver3 --natdnshostresolver4
|
||||||
|
--natdnshostresolver5 --natdnshostresolver6 --natdnshostresolver7
|
||||||
|
--natdnshostresolver8 --nataliasmode1 --nataliasmode2
|
||||||
|
--nataliasmode3 --nataliasmode4 --nataliasmode5 --nataliasmode6
|
||||||
|
--nataliasmode7 --nataliasmode8 --macaddress1 --macaddress2
|
||||||
|
--macaddress3 --macaddress4 --macaddress5 --macaddress6
|
||||||
|
--macaddress7 --macaddress8 --mouse --keyboard --uart1 --uartmode1
|
||||||
|
--uart2 --uartmode2 --lpt1 --lptmode1 --guestmemoryballoon --audio
|
||||||
|
--audiocontroller --clipboard --draganddrop --vrde --vrdeextpack
|
||||||
|
--vrdeproperty --vrdeport --vrdeaddress --vrdeauthtype
|
||||||
|
--vrdeauthlibrary --vrdemulticon --vrdereusecon --vrdevideochannel
|
||||||
|
--vrdevideochannelquality --usb --usbehci --snapshotfolder
|
||||||
|
--teleporter --teleporterport --teleporteraddress
|
||||||
|
--teleporterpassword --teleporterpasswordfile --tracing-enabled
|
||||||
|
--tracing-config --tracing-allow-vm-access --usbcardreader
|
||||||
|
--autostart-enabled --autostart-delay --vcpenabled --vcpscreens
|
||||||
|
--vcpfile --vcpwidth --vcpheight --vcprate --vcpfps
|
||||||
|
--defaultfrontend)
|
||||||
|
|
||||||
|
if [[ ${prev} == ${cmd} ]]; then
|
||||||
|
_vms_comp vms ${cur}
|
||||||
|
else
|
||||||
|
_get_excluded_items "${items[@]}"
|
||||||
|
COMPREPLY=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
case "${prev}" in
|
||||||
|
--groups)
|
||||||
|
COMPREPLY=()
|
||||||
|
_group_comp ${cur}
|
||||||
|
;;
|
||||||
|
--ostype)
|
||||||
|
COMPREPLY=()
|
||||||
|
_os_comp ${cur}
|
||||||
|
;;
|
||||||
|
--pagefusion|--acpi|--ioapic|--hpet|--triplefaultreset|\
|
||||||
|
--hwvirtex|--nestedpaging|--largepages|--vtxvpid|--vtxux|\
|
||||||
|
--pae|--longmode|--synthcpu|--cpuhotplug|--rtcuseutc|\
|
||||||
|
--accelerate3d|--accelerate2dvideo|--bioslogofadein|\
|
||||||
|
--bioslogofadeout|--biospxedebug|--cableconnected1|\
|
||||||
|
--cableconnected2|--cableconnected3|--cableconnected4|\
|
||||||
|
--cableconnected5|--cableconnected6|--cableconnected7|\
|
||||||
|
--cableconnected8|--nictrace1|--nictrace2|--nictrace3|\
|
||||||
|
--nictrace4|--nictrace5|--nictrace6|--nictrace7|--nictrace8|\
|
||||||
|
--natdnspassdomain1|--natdnspassdomain2|--natdnspassdomain3|\
|
||||||
|
--natdnspassdomain4|--natdnspassdomain5|--natdnspassdomain6|\
|
||||||
|
--natdnspassdomain7|--natdnspassdomain8|--natdnsproxy1|\
|
||||||
|
--natdnsproxy2|--natdnsproxy3|--natdnsproxy4|--natdnsproxy5|\
|
||||||
|
--natdnsproxy6|--natdnsproxy7|--natdnsproxy8|\
|
||||||
|
--natdnshostresolver1|--natdnshostresolver2|\
|
||||||
|
--natdnshostresolver3|--natdnshostresolver4|\
|
||||||
|
--natdnshostresolver5|--natdnshostresolver6|\
|
||||||
|
--natdnshostresolver7|--natdnshostresolver8|--vrde|\
|
||||||
|
--vrdemulticon|--vrdereusecon|--vrdevideochannel|--usb|\
|
||||||
|
--usbehci|--teleporter|--tracing-enabled|\
|
||||||
|
--tracing-allow-vm-access|--usbcardreader|\
|
||||||
|
--autostart-enabled|--vcpenabled)
|
||||||
|
COMPREPLY=( $(compgen -W "on off" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--graphicscontroller)
|
||||||
|
COMPREPLY=( $(compgen -W "none vboxvga vmsvga" \
|
||||||
|
-- ${cur}) )
|
||||||
|
;;
|
||||||
|
--firmware)
|
||||||
|
COMPREPLY=( $(compgen -W "bios efi efi32 efi64" \
|
||||||
|
-- ${cur}) )
|
||||||
|
;;
|
||||||
|
--chipset)
|
||||||
|
COMPREPLY=( $(compgen -W "ich9 piix3" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--biosbootmenu)
|
||||||
|
COMPREPLY=( $(compgen -W "disabled menuonly
|
||||||
|
messageandmenu" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--boot[1-4])
|
||||||
|
COMPREPLY=( $(compgen -W "none floppy dvd disk net" \
|
||||||
|
-- ${cur}) )
|
||||||
|
;;
|
||||||
|
--nic[1-8])
|
||||||
|
COMPREPLY=( $(compgen -W "none null nat bridged intnet
|
||||||
|
hostonly generic natnetwork" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--nictype[1-8])
|
||||||
|
COMPREPLY=( $(compgen -W "Am79C970A Am79C973 82540EM
|
||||||
|
82543GC 82545EM virtio" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--nicpromisc[1-8])
|
||||||
|
COMPREPLY=( $(compgen -W "deny allow-vms allow-all" \
|
||||||
|
-- ${cur}) )
|
||||||
|
;;
|
||||||
|
--nicbandwidthgroup[1-8])
|
||||||
|
COMPREPLY=()
|
||||||
|
_bandwidthctl_comp ${cur}
|
||||||
|
_get_excluded_items "none"
|
||||||
|
COMPREPLY+=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--bridgeadapter[1-8])
|
||||||
|
COMPREPLY=()
|
||||||
|
_bridgedif_comp ${cur}
|
||||||
|
_get_excluded_items "none"
|
||||||
|
COMPREPLY+=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--hostonlyadapter[1-8])
|
||||||
|
COMPREPLY=()
|
||||||
|
_hostonlyif_comp ${cur}
|
||||||
|
_get_excluded_items "none"
|
||||||
|
COMPREPLY+=( $(compgen -W "$result" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--intnet[1-8])
|
||||||
|
COMPREPLY=()
|
||||||
|
_intnet_comp ${cur}
|
||||||
|
;;
|
||||||
|
--nat-network[1-8])
|
||||||
|
COMPREPLY=()
|
||||||
|
_natnet_comp ${cur}
|
||||||
|
;;
|
||||||
|
--natnet[1-8])
|
||||||
|
COMPREPLY=()
|
||||||
|
_natnet_comp ${cur}
|
||||||
|
;;
|
||||||
|
--natpf[1-8])
|
||||||
|
COMPREPLY+=( $(compgen -W "delete" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--nataliasmode[1-8])
|
||||||
|
COMPREPLY+=( $(compgen -W "default" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
|
--macaddress[1-8])
|
||||||
|
COMPREPLY+=( $(compgen -W "auto" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--mouse)
|
||||||
|
COMPREPLY+=( $(compgen -W "ps2 usb usbtablet
|
||||||
|
usbmultitouch" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--keyboard)
|
||||||
|
COMPREPLY+=( $(compgen -W "ps2 usb" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
|
--uart[1-2]|--lpt[1-2])
|
||||||
|
COMPREPLY+=( $(compgen -W "off" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--uartmode[1-2])
|
||||||
|
COMPREPLY+=( $(compgen -W "disconnected server client
|
||||||
|
file" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--audio)
|
||||||
|
COMPREPLY+=( $(compgen -W "none null oss alsa" \
|
||||||
|
-- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
|
--audiocontroller)
|
||||||
|
COMPREPLY+=( $(compgen -W "ac97 hda sb16" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
|
--clipboard)
|
||||||
|
COMPREPLY+=( $(compgen -W "disabled hosttoguest
|
||||||
|
guesttohost bidirectional" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--draganddrop)
|
||||||
|
COMPREPLY+=( $(compgen -W "disabled hosttoguest" \
|
||||||
|
-- ${cur}) )
|
||||||
|
;;
|
||||||
|
|
||||||
|
--vrdeextpack|--vrdeauthlibrary|--snapshotfolder|\
|
||||||
|
--defaultfrontend)
|
||||||
|
COMPREPLY+=( $(compgen -W "default" -- ${cur}) )
|
||||||
|
;;
|
||||||
|
--vrdeauthtype)
|
||||||
|
COMPREPLY+=( $(compgen -W "null external guest" \
|
||||||
|
-- ${cur}) )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
natnetwork)
|
natnetwork)
|
||||||
items=(add remove modify start stop)
|
items=(add remove modify start stop)
|
||||||
|
|||||||
Reference in New Issue
Block a user