diff --git a/usr/local/bin/snigdhaos-virtual-machine-check b/usr/local/bin/snigdhaos-virtual-machine-check index c99936c..c61118e 100755 --- a/usr/local/bin/snigdhaos-virtual-machine-check +++ b/usr/local/bin/snigdhaos-virtual-machine-check @@ -3,26 +3,41 @@ # Author : Eshan Roy # 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 - if [ -e "/var/lib/pacman/db.lck" ]; then - echo "Snigdha OS Removing Pacman db.lck!" - rm /var/lib/pacman/db.lck - fi + log_message "Pacman is not ready yet. Trying in 10 seconds." + sleep 10 + if [ -e "/var/lib/pacman/db.lck" ]; then + 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,35 +47,35 @@ 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" - fi + if pacman -Qi $package &> /dev/null; then + 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 <<---" -echo \ No newline at end of file +echo