#!/bin/sh

KSK_DIR="/Library/Application Support/Kaspersky Lab/SafeKids"
KSK_DATA_DIR="$KSK_DIR/Data"
KSK_APP_PKG="$KSK_DATA_DIR/ksk_app.tar.gz"
LOC_TGZ="$KSK_DATA_DIR/loc.tar.gz"
LOC_DIR="$KSK_DIR/Loc"
UPDATE_CFG_TARGET="$KSK_DIR/Binaries/config.xml"
KSKAPP_PATH="/Applications/Kaspersky Safe Kids for Mac.app"

update_locs()
{
	if [ -e "$LOC_TGZ" ]
    then
        LOC_EXTRACTION_TEMP_PATH=$(mktemp -d)
        echo ""
        echo "Extracting $LOC_TGZ into $LOC_EXTRACTION_TEMP_PATH"
        tar -xzvf "$LOC_TGZ" -C "$LOC_EXTRACTION_TEMP_PATH"
        echo "Extracted: "
        ls -la "$LOC_EXTRACTION_TEMP_PATH"

        echo ""
        echo "Deploying locales..."
		cp -Rfv "$LOC_EXTRACTION_TEMP_PATH"/Loc/ "$LOC_DIR"
    fi
}

stop_ksk_app()
{
    local KSKAPP_RECORD=$(/bin/ps -axwo pid,command | /usr/bin/grep -v grep | /usr/bin/grep "Contents/MacOS/ksk_app")
    local KSKPID=$(/bin/echo -n "$KSKAPP_RECORD" | /usr/bin/awk '{print $1}')
    if [ "$KSKPID" != "" ]
    then
        /bin/kill -s KILL "$KSKPID"
    fi
}

update_ksk_app()
{
    KSK_APP_EXTRACTION_TEMP_PATH=$(mktemp -d)
    /bin/echo ""
    /bin/echo "Extracting $KSK_APP_PKG into $KSK_APP_EXTRACTION_TEMP_PATH"
    /usr/bin/tar -xzvf "$KSK_APP_PKG" -C "$KSK_APP_EXTRACTION_TEMP_PATH"
    /bin/echo "Extracted: "
    /bin/ls -la "$KSK_APP_EXTRACTION_TEMP_PATH"

    /bin/echo ""
    /bin/echo "Moving ${KSK_APP_EXTRACTION_TEMP_PATH}/Kaspersky Safe Kids for Mac.app to ${KSKAPP_PATH}"
    /bin/cp -rvf "${KSK_APP_EXTRACTION_TEMP_PATH}/Kaspersky Safe Kids for Mac.app/" "${KSKAPP_PATH}"

    /bin/echo ""
    /bin/echo "Stopping application..."
    stop_ksk_app
}

echo "KSK for Mac 1.8 - Patch A"

IS_REBRANDING=$(grep \"UseSsoWithAuthCode\" "$UPDATE_CFG_TARGET" | sed 's!<[^>]*>!!g;s! !!g' | tr -d '\r')
if [ "$IS_REBRANDING" -eq "1" ]; then
	echo "rebranded product, skip update"
else
    echo "begin update_locs..."
	update_locs
	echo "end update_locs..."
    
    echo "begin update_ksk_app..."
    update_ksk_app
    echo "end update_ksk_app..."

    SYSCTRLD_PID=$(/bin/ps -axwo pid,command | /usr/bin/grep -v grep | /usr/bin/grep "${KSKAPP_PATH}/Contents/MacOS/sysextctrld.app/Contents/MacOS/sysextctrld" | /usr/bin/awk '{print $1}')
    if [ "${SYSCTRLD_PID}" != "" ]
    then
        /bin/echo "System extension controller pid: ${SYSCTRLD_PID}"
        /bin/kill -s TERM "${SYSCTRLD_PID}"
    else
        /bin/echo "warning: Process sysextctrld not found"
    fi
fi