#!/usr/bin/env bash

for user in $(awk -F':' '{ if ($3 >= 1000 && $1 != "nobody") print $1 }' /etc/passwd); do
    usermod -a -G libvirt $user
    usermod -a -G libvirt-qemu $user
    sudo -u $user XDG_RUNTIME_DIR=/run/user/$(id -u $user) gsettings set org.virt-manager.virt-manager xmleditor-enabled true
    sudo -u $user XDG_RUNTIME_DIR=/run/user/$(id -u $user) gsettings set org.virt-manager.virt-manager system-tray true
done

if [ ! -e "/etc/libvirt/qemu/networks/default.xml.bkp" ] && [ -e "/etc/libvirt/qemu/networks/default.xml" ];then
    cp /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/default.xml.bkp
fi

# firewallBackend=$(awk '/^firewall_backend/ { gsub(/"/, "", $3); print $3 }' /etc/libvirt/network.conf)
# if [ "$firewallBackend" != "iptables" ];then
#     sed -i '/^firewall_backend/d' /etc/libvirt/network.conf
#     echo 'firewall_backend = "iptables"' | tee -a /etc/libvirt/network.conf > /dev/null
#     systemctl restart libvirtd.service
# fi

if [ -e /etc/qemu/bridge.conf ] && [ -z "$(grep 'allow all' /etc/qemu/bridge.conf)" ]; then
    echo "allow all" | tee -a /etc/qemu/bridge.conf > /dev/null
fi

# systemctl start virtqemud.service
systemctl start libvirtd.service

network=$(LANG=C virsh net-list | grep default)
if [ -z "$network" ];then
    virsh net-define /etc/libvirt/qemu/networks/default.xml
fi
network=$(LANG=C virsh net-list | grep default)
if [ "$(awk '{print $2}' <<< $network)" != "active" ];then
    virsh net-start default
fi
network=$(LANG=C virsh net-list | grep default)
if [ "$(awk '{print $3}' <<< $network)" != "yes" ];then
    virsh net-autostart default
fi

# systemctl enable virtqemud.service
systemctl enable libvirtd.service
