install.fairie/.config/taskfiles/app/Taskfile-virtualbox.yml

35 lines
1.1 KiB
YAML
Raw Normal View History

2022-12-24 12:04:59 -08:00
---
version: '3'
tasks:
clear:
deps:
- :install:software:virtualbox
summary: |
# Remove All VMs / Reset
This task will remove all the VirtualBox VMs. It is useful in scenarios
where VirtualBox is being called through automation and things can
potentially break. When they break, they need a reset.
**Example resetting all VMs:**
`task app:virtualbox:clear`
There is the capability of only resetting VMs that match a certain pattern.
**Example resetting all VMs matching a pattern:**
`task app:virtualbox:clear -- 'macOS'`
vars:
DEFAULT_PATTERN: default_
cmds:
- cmd: killall -9 VBoxHeadless
ignore_error: true
- |
while read VM; do
VM_NAME="$(echo $VM | sed 's/^"\(.*\)" {.*}/\1/')"
VM_UUID="$(echo $VM | sed 's/^".*".{\(.*\)}/\1/')"
vboxmanage startvm "$VM_UUID" --type emergencystop || true
vboxmanage unregistervm "$VM_UUID" || true
rm -rf "$HOME/VirtualBox VMs/$VM_NAME" || true
done < <(vboxmanage list vms | grep '{{if .CLI_ARGS}}{{.CLI_ARGS}}{{else}}{{.DEFAULT_PATTERN}}{{end}}')