#!/bin/sh -e
# ESET PROTECT
# Copyright (c) 1992-2022 ESET, spol. s r.o. All Rights Reserved

files2del="$(mktemp -q /tmp/EraAgentOnlineInstaller.XXXXXXXX)"
dirs2del="$(mktemp -q /tmp/EraAgentOnlineInstaller.XXXXXXXX)"
echo "$dirs2del" >> "$files2del"
dirs2umount="$(mktemp -q /tmp/EraAgentOnlineInstaller.XXXXXXXX)"
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" && rm -rf "$f"
    done < "$dirs2del"
  fi

  if test -f "$files2del"
  then
    while read f
    do
      rm -f "$f"
    done < "$files2del"
    rm -f "$files2del"
  fi
}

trap 'finalize' HUP INT QUIT TERM EXIT

eraa_server_hostname="net4you.mine.nu"
eraa_server_port="2222"
eraa_server_company_name=""
eraa_peer_cert_b64="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"
eraa_peer_cert_pwd=""
eraa_ca_cert_b64="MIIDWzCCAkOgAwIBAgISARGXRg5AL0UDkytv3hVWY5EBMA0GCSqGSIb3DQEBBQUAMDYxJzAlBgNVBAMMHlNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTELMAkGA1UEBhMCVVMwHhcNMjAwMjExMjMwMDAwWhcNMzAwMjEyMjMwMDAwWjA2MScwJQYDVQQDDB5TZXJ2ZXIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmhWGecz2KVsTBxEi8pdTAROEJvAgsvfgfw99o/CoGm+4Un0fUxtw7VyL+APoAZcIvttdNJIq3Ihs6bvIUzLT1mvZ6huenRplhmf71wKner44fdOXbHatz434kxVJbUQU59N/uIue4Zi900pZSqwe4YIEdud5PqhfoJzVmH93UuwgFQdB6zrofg4K3CKL7OiY3raU/foaU68jwSXcSPzCL2nNyjhZ4PW4dCJeGIZPRddLsROq7lsJvN0VvQRaYM+tc8/dC70OBpb+A0eqhvpcHFy38A2//TRCb/SXXNGZRdilbN6RY12+LlHtpp5q0Tlx6wv7ueolyMPsCmKQEedqkQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjxQfLDncVHt2RQjSj/E8GOd7SjAwHwYDVR0jBBgwFoAUjxQfLDncVHt2RQjSj/E8GOd7SjAwDQYJKoZIhvcNAQEFBQADggEBAAg49DWhpUr59nyF2TV3h+e1RP4G+cM0/C/yKs4jLz6IAMw1e78ugmFbJHGPNfCQmOF0V29ZSs+xGtutdCd1EqLGplyRxcB+HhnaK83DIGfpWyXm3O1C0b/xz6x5k1iY45fvbMQrDiWjpnZ3k9o/zOph7nS29fxxOqkBevO1la0ogsr7DhFrIfxTG2Ot74wYOVwdn6voNVxoFPNiukHU7AdCJa2RJb/e2y8LC1d3dnkxMCMqkZjJqt/wVmFqrW73QwT7tnXxE41Mx4KMyV53xpZ1ugSrhcR6JiqMdRfcEqVAfk8D6zXcDbkPDN9Z5SgCoeocIr4sdQm7q7ed/dyBbKE="
eraa_product_uuid=""
eraa_initial_sg_token="Njk3ZWY0NjYtM2YxMS00ODRjLWFmNDItZmU3ZTkzYzU0YmY1jVrnSLi5SFeaGvqul+LSQEymjAz5pEN4s7NJUCecypUMKkdyrgDQlExhZSdlbY25gURrYg=="
eraa_enable_telemetry="1"
eraa_policy_data="eyJwb2xpY3kiOnsiZm9ybWF0IjoyLCJ3cml0dGVuX2J5X2NlIjoiMjA1MC4zICgyMDIzMDExOCk7IDE5ODIiLCJ2ZXJzaW9uX21ham9yIjo0Mjk0OTY3Mjk1LCJ2ZXJzaW9uX21pbm9yIjo0Mjk0OTY3Mjk1LCJ2ZXJzaW9uX2J1aWxkIjo0Mjk0OTY3Mjk1LCJkYXRhIjp7ImVyYSI6eyJhZ2VudCI6eyJjZV9mbGFncyI6MCwiYXV0b21hdGlvbiI6eyJjZV9mbGFncyI6MCwicmVwbGljYXRpb25fdHJpZ2dlciI6eyJjZV9mbGFncyI6NCwiY3Jvbl9pbnRlcnZhbCI6eyJjZV9mbGFncyI6NCwiY2VfdHlwZSI6MSwiY2VfdmFsdWUiOiJSIFIvMjAgKiAqICogPyAqIn0sImRlbGF5Ijp7ImNlX2ZsYWdzIjo0LCJjZV90eXBlIjo2LCJjZV92YWx1ZSI6MzB9fX19LCJjZV92ZXJzaW9uX21ham9yIjoxMCwiY2VfdmVyc2lvbl9taW5vciI6MCwiY2VfdmVyc2lvbl9idWlsZCI6MH19fX0="

eraa_http_proxy_use="0"
eraa_http_proxy_hostname=""
eraa_http_proxy_port=""
eraa_http_proxy_user=""
eraa_http_proxy_password=""

arch=$(uname -m)
eraa_installer_url="http://repository.eset.com/v1/com/eset/apps/business/era/agent/v10/10.0.3091.0/agent_macosx_x86_64.dmg"
eraa_installer_checksum="e8a747972b5d978444c0cd7b08431559682344d4"
if $(echo "$arch" | grep -E "^(x86_64|amd64)$" 2>&1 > /dev/null)
then
    eraa_installer_url="http://repository.eset.com/v1/com/eset/apps/business/era/agent/v10/10.0.3091.0/agent_macosx_x86_64.dmg"
    eraa_installer_checksum="e8a747972b5d978444c0cd7b08431559682344d4"
elif $(echo "$arch" | grep -E "^(arm64)$" 2>&1 > /dev/null)
then
    eraa_installer_url=""
    eraa_installer_checksum=""
    if test -z $eraa_installer_url
    then
        eraa_installer_url="http://repository.eset.com/v1/com/eset/apps/business/era/agent/v10/10.0.3091.0/agent_macosx_x86_64.dmg"
        eraa_installer_checksum="e8a747972b5d978444c0cd7b08431559682344d4"
    fi
fi

echo "ESET Management Agent live installer script. Copyright © 1992-2022 ESET, spol. s r.o. - All rights reserved."

if test ! -z $eraa_server_company_name
then
  echo " * CompanyName: $eraa_server_company_name"
fi
echo " * Hostname: $eraa_server_hostname"
echo " * Port: $eraa_server_port"
echo " * Installer: $eraa_installer_url"
echo

if test -z $eraa_installer_url
then
  echo "No installer available for '$arch' arhitecture."
  exit 1
fi

local_params_file="/tmp/postflight.plist"
echo "$local_params_file" >> "$files2del"

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" >> "$local_params_file"
echo "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">" >> "$local_params_file"
echo "<plist version=\"1.0\">" >> "$local_params_file"
echo "<dict>" >> "$local_params_file"

echo "  <key>Hostname</key><string>$eraa_server_hostname</string>" >> "$local_params_file"
echo "  <key>SendTelemetry</key><string>$eraa_enable_telemetry</string>" >> "$local_params_file"

echo "  <key>Port</key><string>$eraa_server_port</string>" >> "$local_params_file"

if test -n "$eraa_peer_cert_pwd"
then
  echo "  <key>PeerCertPassword</key><string>$eraa_peer_cert_pwd</string>" >> "$local_params_file"
  echo "  <key>PeerCertPasswordIsBase64</key><string>yes</string>" >> "$local_params_file"
fi

echo "  <key>PeerCertContent</key><string>$eraa_peer_cert_b64</string>" >> "$local_params_file"


if test -n "$eraa_ca_cert_b64"
then
  echo "  <key>CertAuthContent</key><string>$eraa_ca_cert_b64</string>" >> "$local_params_file"
fi
if test -n "$eraa_product_uuid"
then
  echo "  <key>ProductGuid</key><string>$eraa_product_uuid</string>" >> "$local_params_file"
fi
if test -n "$eraa_initial_sg_token"
then
  echo "  <key>InitialStaticGroup</key><string>$eraa_initial_sg_token</string>" >> "$local_params_file"
fi
if test -n "$eraa_policy_data"
then

  echo "  <key>CustomPolicy</key><string>$eraa_policy_data</string>" >> "$local_params_file"
fi

if test "$eraa_http_proxy_use" = "1"
then
  echo "  <key>UseProxy</key><string>$eraa_http_proxy_use</string>" >> "$local_params_file"
  echo "  <key>ProxyHostname</key><string>$eraa_http_proxy_hostname</string>" >> "$local_params_file"
  echo "  <key>ProxyPort</key><string>$eraa_http_proxy_port</string>" >> "$local_params_file"
  echo "  <key>ProxyUsername</key><string>$eraa_http_proxy_user</string>" >> "$local_params_file"
  echo "  <key>ProxyPassword</key><string>$eraa_http_proxy_password</string>" >> "$local_params_file"
fi

echo "</dict>" >> "$local_params_file"
echo "</plist>" >> "$local_params_file"

local_installer="$(dirname $0)"/"$(basename $eraa_installer_url)"

if $(echo "$eraa_installer_checksum  $local_installer" | shasum -c 2> /dev/null > /dev/null)
then
    echo "Verified local installer was found: '$local_installer'"
else
    local_installer=""

    local_installer_dir="$(mktemp -q -d /tmp/EraAgentOnlineInstaller.XXXXXXXX)"
    echo "Downloading installer image '$eraa_installer_url':"

    eraa_http_proxy_value=""
    if test -n "$eraa_http_proxy_value"
    then
      export use_proxy=yes
      export http_proxy="$eraa_http_proxy_value"
      cd "$local_installer_dir" && { curl --fail --connect-timeout 300 --insecure -O -J "$eraa_installer_url" || curl --fail --connect-timeout 300 --noproxy "*" --insecure -O -J "$eraa_installer_url" ; cd - > /dev/null ; } && echo "$local_installer_dir" >> "$dirs2del"
    else
      cd "$local_installer_dir" && { curl --fail --connect-timeout 300 --insecure -O -J "$eraa_installer_url" ; cd - > /dev/null ; } && echo "$local_installer_dir" >> "$dirs2del"
    fi

    installer_filename="$(ls $local_installer_dir)"

    if [ "$installer_filename" ];
    then
        local_installer="$local_installer_dir"/"$installer_filename" && echo "$local_installer" >> "$files2del"
    fi

    if test ! -s "$local_installer"
    then
       echo "Failed to download installer file"
       exit 2
    fi

    /bin/echo -n "Checking integrity of downloaded package " && echo "$eraa_installer_checksum  $local_installer" | shasum -c
fi

if $(echo "$local_installer" | grep -E "\.dmg$" 2>&1 > /dev/null)
then
    local_mount="$(mktemp -q -d /tmp/EraAgentOnlineInstaller.XXXXXXXX)" && echo "$local_mount" | tee "$dirs2del" >> "$dirs2umount"
    echo "Mounting image '$local_installer':" && sudo -S hdiutil attach "$local_installer" -mountpoint "$local_mount" -nobrowse

    local_pkg="$(ls "$local_mount" | grep "\.pkg$" | head -n 1)"

    echo "Installing package '$local_mount/$local_pkg':" && sudo -S installer -pkg "$local_mount/$local_pkg" -target /
elif $(echo "$local_installer" | grep -E "\.pkg$" 2>&1 > /dev/null)
then
    echo "Installing package '$local_installer':" && sudo -S installer -pkg "$local_installer" -target /
else
    echo "Installing package '$local_installer' has unsupported package type"
fi
