#!/bin/bash
#set -e

# Base scripts Author	:	Erik Dubois
# Website	:	https://www.erikdubois.be
# Website	:	https://www.arcolinux.info
# Website	:	https://www.arcolinux.com
# Website	:	https://www.arcolinuxd.com
# Website	:	https://www.arcolinuxb.com
# Website	:	https://www.arcolinuxiso.com
# Website	:	https://www.arcolinuxforum.com

echo "###########################################"
echo "Start virtual machine check"
echo "###########################################"

result=$(systemd-detect-virt)

pacman -Sy

while [ -e "/var/lib/pacman/db.lck" ];
do
    echo 'Pacman is not ready yet. Will try again in 5 seconds.'
    seconds=$(($seconds + 5))
    sleep 5
    if [[ "$seconds" == "30" ]]; then
        echo 'Warning: removing pacman db.lck!'
        rm /var/lib/pacman/db.lck
    fi
done

echo "You are working on "$result

if [ $result = "oracle" ];
	then
		#remove vmware
		if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then
   			rm /etc/xdg/autostart/vmware-user.desktop
			echo "Removed vmware-user.desktop"
		fi

		if pacman -Qi open-vm-tools &> /dev/null; then
			systemctl disable vmware-vmblock-fuse.service
			systemctl disable vmtoolsd.service
			echo "Disabled vmtoolsd.service"
			pacman -Rns open-vm-tools --noconfirm
			echo "Removed open-vm-tools"
		fi

		if pacman -Qi xf86-video-vmware &> /dev/null; then
			pacman -Rns xf86-video-vmware --noconfirm
			echo "Removed xf86-video-vmware"
		fi

		if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then
	   		rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
			echo "Removed vmtoolsd.service if still exists"
		fi

		#remove qemu
		if pacman -Qi qemu-guest-agent &> /dev/null; then
			systemctl disable qemu-guest-agent.service
			pacman -Rns qemu-guest-agent --noconfirm
			echo "Removed qemu-guest-agent"
		fi
fi

if [ $result = "kvm" ];
	then
		#remove vmware
		if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then
   			rm /etc/xdg/autostart/vmware-user.desktop
			echo "Removed vmware-user.desktop"
		fi

		if pacman -Qi open-vm-tools &> /dev/null; then
			systemctl disable vmware-vmblock-fuse.service
			systemctl disable vmtoolsd.service
			echo "Disabled vmtoolsd.service"
			pacman -Rns open-vm-tools --noconfirm
			echo "Removed open-vm-tools"
		fi

		if pacman -Qi xf86-video-vmware &> /dev/null; then
			pacman -Rns xf86-video-vmware --noconfirm
			echo "Removed xf86-video-vmware"
		fi

		if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then
	   		rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
			echo "Removed vmtoolsd.service if still exists"
		fi

		#remove virtualbox
		if pacman -Qi virtualbox-guest-utils &> /dev/null; then
			systemctl disable vboxservice.service
			pacman -Rns virtualbox-guest-utils --noconfirm
			echo "Removed virtualbox-guest-utils"
		fi
		if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then
			systemctl disable vboxservice.service
			pacman -Rns virtualbox-guest-utils-nox --noconfirm
			echo "Removed virtualbox-guest-utils-nox"
		fi
fi

if [ $result = "vmware" ];
	then
		#remove virtualbox
		if pacman -Qi virtualbox-guest-utils &> /dev/null; then
			systemctl disable vboxservice.service
			pacman -Rns virtualbox-guest-utils --noconfirm
			echo "Removed virtualbox-guest-utils"
		fi
		if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then
			systemctl disable vboxservice.service
			pacman -Rns virtualbox-guest-utils-nox --noconfirm
			echo "Removed virtualbox-guest-utils-nox"
		fi

		#remove qemu
		if pacman -Qi qemu-guest-agent &> /dev/null; then
			systemctl disable qemu-guest-agent.service
			pacman -Rns qemu-guest-agent --noconfirm
			echo "Removed qemu-guest-agent"
		fi
fi

if [ $result = "none" ];
	then
		#remove virtualbox
		if pacman -Qi virtualbox-guest-utils &> /dev/null; then
			systemctl disable vboxservice.service
			pacman -Rns virtualbox-guest-utils --noconfirm
			echo "Removed virtualbox-guest-utils"
		fi

		if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then
			systemctl disable vboxservice.service
			pacman -Rns virtualbox-guest-utils-nox --noconfirm
			echo "Removed virtualbox-guest-utils-nox"
		fi

		#remove vmware
		if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then
	   		rm /etc/xdg/autostart/vmware-user.desktop
			echo "Removed vmware-user.desktop"
		fi

		if pacman -Qi open-vm-tools &> /dev/null; then
			systemctl disable vmware-vmblock-fuse.service
			systemctl disable vmtoolsd.service
			echo "Disabled vmtoolsd.service"
			pacman -Rns open-vm-tools --noconfirm
			echo "Removed open-vm-tools"
		fi

		if pacman -Qi xf86-video-vmware &> /dev/null; then
			pacman -Rns xf86-video-vmware --noconfirm
			echo "Removed xf86-video-vmware"
		fi

		if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then
	   		rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
			echo "Removed vmtoolsd.service if still exists"
		fi

		#remove qemu
		if pacman -Qi qemu-guest-agent &> /dev/null; then
			systemctl disable qemu-guest-agent.service
			pacman -Rns qemu-guest-agent --noconfirm
			echo "Removed qemu-guest-agent"
		fi

		if [ -f /usr/local/bin/arcolinux-virtual-machine-check ]; then
	   		rm /usr/local/bin/arcolinux-virtual-machine-check
			echo "Removed avm-check script"
		fi

		if [ -L /etc/systemd/system/multi-user.target.wants/virtual-machine-check.service ]; then
			rm /etc/systemd/system/multi-user.target.wants/virtual-machine-check.service
			echo "Removed avm-check script"
		fi
fi

echo "########################################"
echo "End virtual machine check"
echo "########################################"