This commit is contained in:
Sebastian Mark 2017-09-04 14:31:18 +02:00
commit e236ec56ec
3 changed files with 86 additions and 0 deletions

38
_vb Normal file
View file

@ -0,0 +1,38 @@
#compdef vb
_vb() {
local state
_arguments -C '1: :->actions' '2: :->vms' '3: :->snapshots'
case $state in
(actions)
local actions
actions=("list:List all VMs"
"start:Start VM"
"stop:Stop VM"
"suspend:Suspend VM"
"restart:Restart VM"
"reset:Reset VM"
"status:Show status"
"snapshot:Create new snapshot"
"snaprestore:Restore snapshots"
"snaplist:List snapshots"
"snapdel:Delete snapshot")
_describe 'actions' actions
;;
(vms)
compadd -- $(vboxmanage list vms | awk '{print $1}' | xargs)
;;
(snapshots)
local snapshot_list
[[ $line[1] =~ 'snapdel|snaprestore' ]] || return
snapshot_list=$(vboxmanage snapshot $line[2] list)
[[ $? -ne 0 ]] && return
compadd -- $(awk '{print $2}' <<<$snapshot_list)
;;
esac
}
_vb "$@"