#!/bin/sh # # Remove a VM for liw. set -eu run_virsh() { virsh -c qemu:///system "$@" } vm_exists() { run_virsh list --all | grep -F "$name" > /dev/null } remove_vm() { local name="$1" # Shut down and remove the VM, if it exists. if vm_exists "$name" then run_virsh destroy "$name" || true run_virsh undefine "$name" fi # Remove the LV, if it exists. lvpath="/dev/$vg/$name" if [ -e "$lvpath" ] then sudo lvremove --force "$lvpath" fi # Remove the host from /etc/hosts, if there. awk -v "name=$name" '$2 != name' /etc/hosts | sudo sponge /etc/hosts # Done. echo "Virtual machine $name is gone." } # Read config variables. . "$HOME/.config/ansibleness/vm.conf" for name in "$@" do remove_vm "$name" done