#!/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="davinci-resolve"
latest_package_version="20.3.2"
package_installation_directory="/usr/share/$package_name-updater"
executable_file="/opt/resolve/bin/resolve"
package_download_name="DaVinci_Resolve_$(echo $latest_package_version)_Linux.zip"
download_link="$($package_installation_directory/get-download-url)"
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")

# Download app without the store
function donwload_app() {
	mkdir -p "$package_installation_directory/"
	wget --no-check-certificate -O \
		"$package_installation_directory/$package_download_name" \
		"$download_link"
}

# Install app
function install_app() {
	cd "$package_installation_directory/"
	unzip -u DaVinci_Resolve_*_Linux.zip
	chmod +x DaVinci_Resolve_*_Linux.run
	./DaVinci_Resolve_*_Linux.run --install --allowroot --noconfirm
}

# 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/$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_app
		else
			donwload_app
			install_app
		fi
	else
		donwload_app
		install_app
	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
