#!/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="dropbox"
latest_package_version="2023.09.06"
package_installation_directory="/opt/$package_name-updater"
executable_file="/usr/bin/dropbox"
package_download_name="dropbox_$(echo $latest_package_version)_amd64.deb"
download_link="https://www.dropbox.com/download?dl=packages/ubuntu/$package_download_name"
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
#Install package
#Download package
function download_package() {
	mkdir -p $package_installation_directory/
	wget --no-check-certificate -O $package_installation_directory/$package_download_name $download_link
}

function install_package() {
	cd $package_installation_directory/
	ar -x "$package_download_name"
	tar --use-compress-program=unzstd -xvf $package_installation_directory/data.tar.zst -C /
}

function update_package() {
	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/$package_download_name $download_link" >/tmp/progressbar-store/get-pid
			mkdir -p $package_installation_directory/
			wget --no-check-certificate -O $package_installation_directory/$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
			install_package
		else
			download_package
			install_package
		fi
	else
		download_package
		install_package
	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_package
else
	if test ! -e "$executable_file"; then
		echo "Installing app"
		update_package
	else
		echo "App version: $latest_package_version. The application appears to be updated. Nothing to do."
	fi
fi
