#!/bin/bash
# This script only helps to update applications that have already been installed by the user,
# but that are not found in software repositories.

# Package information
package_name="safenet-authentication-client"
latest_package_version="10.7.77"
package_installation_directory="/opt/safenet-authentication-client"
executable_file="/usr/bin/SACMonitor"
package_download_name="Safenet_Linux_Installer_RPM_x64.zip"
download_link="https://www.globalsign.com/en/safenet-drivers/USB/10.7/Safenet_Linux_Installer_RPM_x64.zip"
expected_package_version=$(echo $latest_package_version | cut -d"-" -f -1 | sed "s/\.//g")
installed_package_version=$(rpm -qi $package_name-updater | grep Ver | awk '{print $3}' | sed "s/\.//g")

# If necessary, update the application installation
function update_app() {
ps -C regataos-store > /dev/null
if [ $? = 0 ]
then
    if test -e "/tmp/progressbar-store/installing-$package_name" ; then
        # Prepare the progress bar and downloading
        rm -f "/tmp/progressbar-store/progress-movement"
        echo "0%" > /tmp/progressbar-store/progress
        echo "Downloading..." > /tmp/progressbar-store/status
        chmod 777 /tmp/progressbar-store/*
        sleep 1
        echo "show progress bar" > /tmp/progressbar-store/progressbar
        chmod 777 /tmp/progressbar-store/*

        echo "/tmp/progressbar-store/$package_download_name" > /tmp/progressbar-store/file-download-size
        chmod 777 /tmp/progressbar-store/*
        echo "wget --no-check-certificate -O $package_installation_directory/rpm/$package_download_name $download_link" > /tmp/progressbar-store/get-pid
        mkdir -p "$package_installation_directory/rpm"
        wget --no-check-certificate -O $package_installation_directory/rpm/$package_download_name $download_link 2>&1 | (pv -n > /tmp/progressbar-store/download-percentage)
        echo 100% > /tmp/progressbar-store/progress
        chmod 777 /tmp/progressbar-store/*
        sleep 1
        #Clear cache
        rm -f "/tmp/progressbar-store/download-percentage"
        rm -f "/tmp/progressbar-store/download-size"
        rm -f "/tmp/progressbar-store/download-speed"
        rm -f "/tmp/progressbar-store/file-size"
        rm -f "/tmp/progressbar-store/eta"

        # Install app
        #Prepare the progress bar and install
        chmod 777 /tmp/progressbar-store/*
        echo "Installing..." > /tmp/progressbar-store/status
        echo "" > /tmp/progressbar-store/progress
        echo "installing" > /tmp/progressbar-store/progress-movement

        #Install package
        cd $package_installation_directory/rpm
        unzip -u "$package_download_name"
        cd "$package_installation_directory/rpm/Linux RPM x64/"

        rm -f License.xml
        rm -f RPM-GPG-KEY-SafenetAuthenticationClient
        rm -f SafenetAuthenticationClient-*.rpm.*
        rm -f SafenetAuthenticationClient-*.x86_64.rpm.*

        rpm2cpio "SafenetAuthenticationClient-$latest_package_version-1.x86_64.rpm" | cpio -di
        rm -f "SafenetAuthenticationClient-$latest_package_version-1.x86_64.rpm"
        tar Jcvf safenet-authentication-client.tar.xz *
        tar xf safenet-authentication-client.tar.xz -C /

    else
        #Get the app
        mkdir -p "$package_installation_directory/rpm"
        wget --no-check-certificate -O $package_installation_directory/rpm/$package_download_name $download_link

        #Install package
        cd $package_installation_directory/rpm
        unzip -u "$package_download_name"
        cd "$package_installation_directory/rpm/Linux RPM x64/"

        rm -f License.xml
        rm -f RPM-GPG-KEY-SafenetAuthenticationClient
        rm -f SafenetAuthenticationClient-*.rpm.*
        rm -f SafenetAuthenticationClient-*.x86_64.rpm.*

        rpm2cpio "SafenetAuthenticationClient-$latest_package_version-1.x86_64.rpm" | cpio -di
        rm -f "SafenetAuthenticationClient-$latest_package_version-1.x86_64.rpm"
        tar Jcvf safenet-authentication-client.tar.xz *
        tar xf safenet-authentication-client.tar.xz -C /
    fi

else
    #Get the app
    mkdir -p "$package_installation_directory/rpm"
    wget --no-check-certificate -O $package_installation_directory/rpm/$package_download_name $download_link

    #Install package
    cd $package_installation_directory/rpm
    unzip -u "$package_download_name"
    cd "$package_installation_directory/rpm/Linux RPM x64/"

    rm -f License.xml
    rm -f RPM-GPG-KEY-SafenetAuthenticationClient
    rm -f SafenetAuthenticationClient-*.rpm.*
    rm -f SafenetAuthenticationClient-*.x86_64.rpm.*

    rpm2cpio "SafenetAuthenticationClient-$latest_package_version-1.x86_64.rpm" | cpio -di
    rm -f "SafenetAuthenticationClient-$latest_package_version-1.x86_64.rpm"
    tar Jcvf safenet-authentication-client.tar.xz *
    tar xf safenet-authentication-client.tar.xz -C /
fi
}

# Check the package version
#Check the main version of the application
if [ $expected_package_version -gt $installed_package_version ]
then
    echo "Updating app"
    update_app
else
	if test ! -e "$executable_file" ; then
		echo "Installing app"
		update_app
	else
		echo "App version: $latest_package_version. The application appears to be updated. Nothing to do."
	fi
fi
