#!/bin/bash
# Prod variable for install EEA or EES
#
# Activation will be attempted if value KEY contains is not empty
# security admin format example: '123-ABC-456:user=security.admin@mail.com:pass=SecurityAdminPass'
# Proxy example: http://Proxy-IP-or-FQDN:3128
Prod_P=$1
Lic_P=$2
Proxy_P=$3
Prod=""
KEY=""
eraa_http_proxy_value=""
if [ -z "$Prod_P" ] && [ -z "$Prod" ] ; then echo 'No product selected please specify EEA or EES' & exit 1; fi
if test -n "$Prod"; then
Prod="$(echo $Prod | tr "[:lower:]" "[:upper:]")"
fi
if test -n "$Prod_P"; then
Prod="$(echo $Prod_P | tr "[:lower:]" "[:upper:]")"
fi
if test -n "$Lic_P"; then
KEY=$Lic_P
fi
if test -n "$Proxy_P"; then
eraa_http_proxy_value=$Proxy_P
fi
files2del="$(mktemp -q /tmp/XXXXXXXX.files)"
dirs2del="$(mktemp -q /tmp/XXXXXXXX.dirs)"
echo "$dirs2del" >> "$files2del"
dirs2umount="$(mktemp -q /tmp/XXXXXXXX.mounts)"
echo "$dirs2umount" >> "$files2del"
finalize()
{
set +e
echo "Cleaning up:"
if test -f "$dirs2umount"
then
while read f
do
sudo -S hdiutil detach "$f"
done < "$dirs2umount"
fi
if test -f "$dirs2del"
then
while read f
do
test -d "$f" && rmdir "$f"
done < "$dirs2del"
fi
if test -f "$files2del"
then
while read f
do
unlink "$f"
done < "$files2del"
unlink "$files2del"
fi
}
trap 'finalize' HUP INT QUIT TERM EXIT
if [ $Prod == EEA ]; then
DMG=eea_osx_en.dmg
URL=http://download.eset.com/com/eset/apps/business/eea/mac/latest/eea_osx_en.dmg
APP=Antivirus
fi
if [ $Prod == EES ]; then
DMG=ees_osx_en.dmg
URL=http://download.eset.com/com/eset/apps/business/ees/mac/latest/ees_osx_en.dmg
APP=Security
fi
if ! [[ $Prod =~ (EEA|EES) ]]; then echo 'No valid product selected please specify EEA or EES' && exit 1; fi
local_ESET_dmg="$(mktemp -q -u /tmp/ESETInstaller.dmg.XXXXXXXX)"
echo "Downloading ESET Endpoint $APP installer image '$URL':"
if test -n "$eraa_http_proxy_value"
then
export use_proxy=yes
export http_proxy="$eraa_http_proxy_value"
(curl --connect-timeout 300 --insecure -o "$local_ESET_dmg" "$URL" || curl --connect-timeout 300 --noproxy "*" --insecure -o "$local_ESET_dmg" "$URL") && echo "$local_ESET_dmg" >> "$files2del"
else
curl --connect-timeout 300 --insecure -o "$local_ESET_dmg" "$URL" && echo "$local_ESET_dmg" >> "$files2del"
fi
if [ ! -f $local_ESET_dmg ]; then exit 1 ; fi
test -d '/Library/Application Support/ESET/esets/cache' || mkdir -p '/Library/Application Support/ESET/esets/cache'
touch '/Library/Application Support/ESET/esets/cache/do_not_launch_esets_gui_after_installation'
local_ESET_mount="$(mktemp -q -d /tmp/ESETInstaller.mount.XXXXXXXX)" && echo "$local_ESET_mount" | tee "$dirs2del" >> "$dirs2umount"
echo "Mounting image '$local_ESET_dmg':" && sudo -S hdiutil attach "$local_ESET_dmg" -mountpoint "$local_ESET_mount" -nobrowse
local_ESET_pkg="$(ls "$local_ESET_mount"/Resources/ | grep "\.pkg$" | tail -n 1)"
SigCheck="$(pkgutil --check-signature "$local_ESET_mount/Resources/$local_ESET_pkg" | grep -o "ESET, spol. s r.o. (P8DQRXPVLP)")"
if [ "$SigCheck" == "ESET, spol. s r.o. (P8DQRXPVLP)" ]; then
echo "Signature check Passed"
echo "$SigCheck"
echo "Installing package '$local_ESET_mount/Resources/$local_ESET_pkg':" && sudo -S installer -pkg "$local_ESET_mount/Resources/$local_ESET_pkg" -target /
else
echo "Signature check failed"
echo "$SigCheck"
exit 1
fi
sleep 10
if test -n "$KEY"; then
/Applications/ESET\ Endpoint\ $APP.app/Contents/MacOS/esets_daemon --wait-respond --activate "key=$KEY"
fi
exit 0