rdt-client/server/RdtClient.Web/Update.sh
Jeremy R 3db5cd7060
Moved from root to server/RdtClient.Web/
Moved to proper location, next to windows update script
2023-09-29 06:22:07 -04:00

102 lines
2.5 KiB
Bash

#!/bin/bash
# Define paths and URLs
INSTALL_DIR="/opt/rdtc"
INSTALLED_DIR="$INSTALL_DIR/.installed"
INSTALLED_FILE="$INSTALLED_DIR/version.txt"
BACKUP_DIR="$INSTALL_DIR/.backup"
GITHUB_API_URL="https://api.github.com/repos/rogerfar/rdt-client/releases/latest"
DOWNLOAD_URL=$(curl -s "$GITHUB_API_URL" | jq -r '.assets[0].browser_download_url')
# Function to check if a newer version is available
check_for_update() {
local current_version
if [ -f "$INSTALLED_FILE" ]; then
current_version=$(cat "$INSTALLED_FILE")
else
mkdir -p $INSTALLED_DIR
current_version="0.0.0"
fi
latest_version=$(curl -s "$GITHUB_API_URL" | jq -r '.name' | tr -d v)
if [[ "$1" == "-force" ]]; then
update
fi
if [[ "$current_version" == "$latest_version" ]]; then
echo "The installed version ($current_version) is up to date."
else
echo "A newer version ($latest_version) is available."
if [[ "$1" == "-update" ]]; then
update
elif [[ "$1" == "-check" ]]; then
read -p "Do you want to update? (Y/n): " choice
case "$choice" in
[Yy]*)
update
;;
*)
echo "Update canceled."
;;
esac
fi
fi
}
# Function to update the software
update() {
echo "Updating RealDebridClient..."
# Download the latest zip file
echo "Downloading Lastest RealDebridClient"
curl -sLO "$DOWNLOAD_URL"
# Stop the rdtc service
echo "Stopping RealDebridClient"
sudo systemctl stop rdtc
echo "Backing up RealDebridClient"
cp $INSTALL_DIR/appsettings.json $BACKUP_DIR
cp -r $INSTALL_DIR/db $BACKUP_DIR
# Unzip the downloaded file
echo "Unzipping RealDebridClient.zip"
unzip -q -o RealDebridClient.zip -d "$INSTALL_DIR"
# Store the new version in the installed file
echo "Updating Latest Version file"
echo "$latest_version" > "$INSTALLED_FILE"
echo "Restoring Backup"
cp $BACKUP_DIR/appsettings.json $INSTALL_DIR
cp -r $BACKUP_DIR/db $INSTALL_DIR
# Start the rdtc service
echo "Starting RealDebridClient"
sudo systemctl start rdtc
echo "Update complete."
}
# Main script
case "$1" in
"-update")
check_for_update "-update"
;;
"-force")
update
;;
"-check")
check_for_update "-check"
;;
"")
check_for_update "-update"
;;
*)
echo "Usage: $0 {-update|-force|-check}"
exit 1
;;
esac
exit 0