#!/bin/bash

/usr/bin/killall -9 clamscan
/usr/bin/killall -9 clamdscan
/bin/rm /tmp/clamd3.socket

LOGGED_IN_USER_ID=`id -u "${USER}"`


# Remove ClamXAV 2 bits
# PrivilegedHelper and plist
if [ -e /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXavHelper.plist ]
then
    echo "remove very old Privileged Helper launchdaemon"
	/bin/launchctl unload /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXavHelper.plist
	/bin/rm /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXavHelper.plist

	/usr/bin/killall -9 uk.co.canimaansoftware.ClamXavHelper
	/bin/rm /Library/PrivilegedHelperTools/uk.co.canimaansoftware.ClamXavHelper
fi
if [ -e /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXavHelperUpdater.plist ]
then
    echo "remove old Privileged Helper updater launchdaemon"
	/bin/launchctl unload /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXavHelperUpdater.plist
	/bin/rm /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXavHelperUpdater.plist

	/usr/bin/killall -9 uk.co.canimaansoftware.ClamXavHelperUpdater
	/bin/rm /Library/PrivilegedHelperTools/uk.co.canimaansoftware.ClamXavHelperUpdater
fi

# old scan schedules
for homeFolderPath in /Users/*; do
	if [ -e $homeFolderPath/Library/LaunchAgents/uk.co.markallan.clamxav.clamscan.plist ]
	then
		echo "remove very old scan schedules"
		/bin/launchctl asuser "${LOGGED_IN_USER_ID}" /bin/launchctl unload $homeFolderPath/Library/LaunchAgents/uk.co.markallan.clamxav.clamscan.plist
		/bin/rm $homeFolderPath/Library/LaunchAgents/uk.co.markallan.clamxav.clamscan.plist
	fi
	if [ -e $homeFolderPath/Library/LaunchAgents/uk.co.canimaansoftware.clamxav.clamscan.plist ]
	then
		echo "remove old scan schedules"
		/bin/launchctl asuser "${LOGGED_IN_USER_ID}" /bin/launchctl unload $homeFolderPath/Library/LaunchAgents/uk.co.canimaansoftware.clamxav.clamscan.plist
		/bin/rm $homeFolderPath/Library/LaunchAgents/uk.co.canimaansoftware.clamxav.clamscan.plist
	fi
	if [ -e $homeFolderPath/Library/LaunchAgents/uk.co.markallan.clamxav.freshclam.plist ]
	then
		echo "remove very old update schedules"
		/bin/launchctl asuser "${LOGGED_IN_USER_ID}" /bin/launchctl unload $homeFolderPath/Library/LaunchAgents/uk.co.markallan.clamxav.freshclam.plist
		/bin/rm $homeFolderPath/Library/LaunchAgents/uk.co.markallan.clamxav.freshclam.plist
	fi
	if [ -e $homeFolderPath/Library/LaunchAgents/uk.co.canimaansoftware.clamxav.freshclam.plist ]
	then
		echo "remove old update schedules"
		/bin/launchctl asuser "${LOGGED_IN_USER_ID}" /bin/launchctl unload $homeFolderPath/Library/LaunchAgents/uk.co.canimaansoftware.clamxav.freshclam.plist
		/bin/rm $homeFolderPath/Library/LaunchAgents/uk.co.canimaansoftware.clamxav.freshclam.plist
	fi
# old uninstall watcher
	if [ -e $homeFolderPath/Library/LaunchAgents/uk.co.canimaansoftware.clamxav.UninstallWatcher.plist ]
	then
		echo "remove old uninstall watcher"
		/bin/launchctl asuser "${LOGGED_IN_USER_ID}" /bin/launchctl unload $homeFolderPath/Library/LaunchAgents/uk.co.canimaansoftware.clamxav.UninstallWatcher.plist
		/bin/rm $homeFolderPath/Library/LaunchAgents/uk.co.canimaansoftware.clamxav.UninstallWatcher.plist
	fi
done

# old scanning engine
if [ -d /usr/local/clamXav ]
then
    echo "remove old scanning engine"
	/bin/rm -rf /usr/local/clamXav
fi

# ClamXAV 3 bits

if [ -e /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXAV.HelperTool.plist ]
then
    echo "unload old Privileged Helper launchdaemon"
	/bin/launchctl unload /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXAV.HelperTool.plist

	/usr/bin/killall -9 uk.co.canimaansoftware.ClamXAV.HelperTool
	/bin/rm /Library/PrivilegedHelperTools/uk.co.canimaansoftware.ClamXAV.HelperTool
fi

if [ -e /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXAV.HelperToolUpdater.plist ]
then
    echo "unload old Privileged Helper Updater launchdaemon"
	/bin/launchctl unload /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXAV.HelperToolUpdater.plist

	/usr/bin/killall uk.co.canimaansoftware.ClamXAV.HelperToolUpdater
	/bin/rm /Library/PrivilegedHelperTools/uk.co.canimaansoftware.ClamXAV.HelperToolUpdater
fi

if [ -e /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXAV.Engine.plist ]
then
    echo "unload old clamd launchdaemon"
    /bin/launchctl unload /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXAV.Engine.plist
    /Library/LaunchDaemons/uk.co.canimaansoftware.ClamXAV.Engine.plist
else
    echo "No old clamd launchdeamon found"
fi

if [ -e /Library/LaunchAgents/uk.co.canimaansoftware.ClamXAV.UI-Helper.plist ]
then
    echo "unload old UI Helper launchdaemon"
    if [ "${COMMAND_LINE_INSTALL}" = "" ]
	then
	    /bin/launchctl asuser "${LOGGED_IN_USER_ID}" /bin/launchctl unload /Library/LaunchAgents/uk.co.canimaansoftware.ClamXAV.UI-Helper.plist
	fi
    /bin/rm /Library/LaunchAgents/uk.co.canimaansoftware.ClamXAV.UI-Helper.plist
else
    echo "No old UI Helper launchdaemon found"
fi

# kill GUI apps
/usr/bin/pkill -9 ClamX

if [ -e /usr/local/ClamXAV3 ]
then
    echo "remove old scanning engine"
    rm -rf /usr/local/ClamXAV3
else
    echo "No old scanning engine found"
fi

mkdir -p "/usr/local/"
mkdir -p "/Library/Application Support/ClamXAV/Settings/Users"
mkdir -p "/Library/Application Support/ClamXAV/Settings/Licence"
mkdir -p "/Library/Application Support/ClamXAV/Quarantine"
mkdir -p "/Library/Application Support/ClamXAV/Logs"
