Merge pull request #316 from JReming85/patch-1
Auto Update script for linux
This commit is contained in:
commit
c771662629
1 changed files with 102 additions and 0 deletions
102
server/RdtClient.Web/Update.sh
Normal file
102
server/RdtClient.Web/Update.sh
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
#!/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
|
||||
Loading…
Reference in a new issue