#!/bin/bash

# Konfiguration
LAB_FILE="vms.txt"

# Prüfen, ob die Datei existiert
if [ ! -f "$LAB_FILE" ]; then
    echo "Fehler: Datei '$LAB_FILE' nicht gefunden!"
    echo "Bitte erstelle eine Datei '$LAB_FILE' mit einem VM-Namen pro Zeile."
    exit 1
fi

# VMs aus Datei einlesen (ignoriert Leerzeilen und # Kommentare)
VMS=$(grep -v '^#' "$LAB_FILE" | grep -v '^$')

is_running() {
    VBoxManage list runningvms | grep -q "\"$1\""
}

case $1 in
    start)
        for VM in $VMS; do
            if is_running "$VM"; then
                echo "[-] $VM läuft bereits."
            else
                echo "[+] Starte $VM..."
                VBoxManage startvm "$VM" --type headless
            fi
        done
        ;;
    stop)
        for VM in $VMS; do
            if is_running "$VM"; then
                echo "[!] Stoppe $VM (ACPI)..."
                VBoxManage controlvm "$VM" acpipowerbutton
            else
                echo "[-] $VM ist bereits aus."
            fi
        done
        ;;
    status)
        echo "=== Status der Schulungs-VMs ==="
        for VM in $VMS; do
            if is_running "$VM"; then
                echo -e " \e[32m[RUNNING]\e[0m  $VM"
            else
                echo -e " \e[31m[STOPPED]\e[0m  $VM"
            fi
        done
        ;;
    *)
        echo "Benutzung: $0 {start|stop|status}"
        exit 1
        ;;
esac
