39 lines
1.5 KiB
Bash
Executable File
39 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ==============================================================#
|
|
# File : nuke
|
|
# Desc : nuke vagrant VMs/Disks with virsh (DANGEROUS!)
|
|
# Ctime : 2023-07-29
|
|
# Mtime : 2025-03-21
|
|
# Path : vagrant/nuke
|
|
# License : Apache-2.0 @ https://pigsty.io/docs/about/license/
|
|
# Copyright : 2018-2026 Ruohang Feng / Vonng (rh@vonng.com)
|
|
# ==============================================================#
|
|
SCRIPT_NAME="$(basename $0)"
|
|
SCRIPT_DIR="$(cd $(dirname $0) && pwd)"
|
|
|
|
# if virsh is not installed, exit
|
|
if ! command -v virsh &> /dev/null
|
|
then
|
|
echo "virsh could not be found, exit"
|
|
exit 1
|
|
fi
|
|
|
|
# this will destroy all vagrant VMs and Volumes, DO USE WITH CAUTION!
|
|
echo "====================================="
|
|
echo "destroy and undefine all vagrant VMs"
|
|
virsh list --all | grep "vagrant_"
|
|
virsh list --all | grep "vagrant_" | awk '{print $2}' | xargs -I {} virsh destroy {}
|
|
virsh list --all | grep "vagrant_" | awk '{print $2}' | xargs -I {} virsh undefine {}
|
|
virsh list --all | grep "vagrant_"
|
|
|
|
echo "====================================="
|
|
echo "destroy and undefine all vagrant volumes"
|
|
virsh vol-list default | grep '^ vagrant_' | awk '{print $1}'
|
|
virsh vol-list default | grep '^ vagrant_' | awk '{print $1}' | xargs -I {} virsh vol-delete --pool default {}
|
|
virsh vol-list default | grep '^ vagrant_' | awk '{print $1}'
|
|
|
|
|
|
echo "====================================="
|
|
echo "destroy ${SCRIPT_DIR}/.vagrant cache"
|
|
rm -rf "${SCRIPT_DIR}/.vagrant" |