️ perf(_blank): more enhancement with logging

This commit is contained in:
Eshan Roy
2024-11-20 01:22:20 +05:30
parent 5fbf340f86
commit 8662e502ef

View File

@@ -3,26 +3,41 @@
# Author : Eshan Roy <eshan@snigdhaos.or>
# Author URL : https://eshanized.github.io/
echo
echo "--->> Start snigdhaos-virtual-machine-check <<---"
echo
LOG_FILE="/var/log/snigdhaos_vm_check.log"
ERROR_LOG="/var/log/snigdhaos_vm_check_error.log"
# Log a message to the log file
log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}
# Log an error message and exit
log_error() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - ERROR: $1" | tee -a "$ERROR_LOG"
exit 1
}
# Start of the process
log_message "Starting Snigdha OS Virtual Machine Check..."
# Detect virtualization platform
result=$(systemd-detect-virt)
if [ $? -ne 0 ]; then
log_error "Failed to detect virtualization platform."
fi
# Remove db.lck if it exists
log_message "Checking for Pacman lock (db.lck)..."
while [ -e "/var/lib/pacman/db.lck" ]; do
echo 'Pacman is not ready yet. Trying in 10 Seconds.'
sleep 5
log_message "Pacman is not ready yet. Trying in 10 seconds."
sleep 10
if [ -e "/var/lib/pacman/db.lck" ]; then
echo "Snigdha OS Removing Pacman db.lck!"
rm /var/lib/pacman/db.lck
log_message "Removing Pacman db.lck!"
rm /var/lib/pacman/db.lck || log_error "Failed to remove Pacman db.lck"
fi
done
echo
echo "You Are On : $result"
echo
log_message "You are on: $result"
# Define packages to remove for each virtualization platform
declare -A packages_to_remove
@@ -32,34 +47,34 @@ packages_to_remove[vmware]="virtualbox-guest-utils virtualbox-guest-utils-nox qe
packages_to_remove[none]="virtualbox-guest-utils virtualbox-guest-utils-nox qemu-guest-agent open-vm-tools xf86-video-vmware"
# Remove packages and disable services
log_message "Removing platform-specific packages and services..."
for package in ${packages_to_remove[$result]}; do
if pacman -Qi $package &> /dev/null; then
systemctl disable $package.service
pacman -Rns $package --noconfirm
echo "[REMOVED] $package"
systemctl disable $package.service || log_error "Failed to disable service $package.service"
pacman -Rns $package --noconfirm || log_error "Failed to remove package $package"
log_message "[REMOVED] $package"
else
log_message "[SKIPPED] $package is not installed."
fi
done
# Remove additional files
if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then
rm /etc/xdg/autostart/vmware-user.desktop
echo "[REMOVED] vmware-user.desktop"
fi
# Remove additional files specific to VMware or other platforms
remove_file() {
local file=$1
if [ -f "$file" ]; then
rm -v "$file" || log_error "Failed to remove $file"
log_message "[REMOVED] $file"
else
log_message "[SKIPPED] $file does not exist."
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"
fi
remove_file "/etc/xdg/autostart/vmware-user.desktop"
remove_file "/etc/systemd/system/multi-user.target.wants/vmtoolsd.service"
remove_file "/usr/local/bin/snigdhaos-virtual-machine-check"
remove_file "/etc/systemd/system/multi-user.target.wants/virtual-machine-check.service"
if [ -f /usr/local/bin/snigdhaos-virtual-machine-check ]; then
rm /usr/local/bin/snigdhaos-virtual-machine-check
echo "[REMOVED] /usr/local/bin/snigdhaos-virtual-machine-check"
fi
if [ -f /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
log_message "Virtual machine check completed successfully."
echo
echo "--->> End snigdhaos-virtual-machine-check <<---"