diff --git a/DBRepair.sh b/DBRepair.sh index 3b6affe..abed3ee 100755 --- a/DBRepair.sh +++ b/DBRepair.sh @@ -1450,6 +1450,13 @@ GetLatestRelease() { DownloadAndUpdate() { url="$1" filename="$2" + + # Check if script path is writable + if [ ! -w "$ScriptWorkingDirectory" ]; then + Output "Script path is not writable." + exit 2 + fi + # Download the file and check if the download was successful if curl -s "$url" --output "$filename"; then Output "Update downloaded successfully" @@ -1604,7 +1611,7 @@ do echo " 11 - 'status' - Report status of PMS (run-state and databases)" echo " 12 - 'undo' - Undo last successful command" echo "" - echo " 00 - 'update' - Check for script update" + echo " 98 - 'update' - Check for script update" echo " 99 - 'quit' - Quit immediately. Keep all temporary files." echo " 'exit' - Exit with cleanup options." fi @@ -1906,22 +1913,27 @@ do DoUndo ;; - 00|update) + 98|upda*) - Output "Checking for script update" - GetLatestRelease - if [ $LatestVersion != $Version ]; then - Output "Version update available" - if ConfirmYesNo "Download and update script?"; then + DoUpdate=0 + Output "Checking for script update" + GetLatestRelease + if [ $LatestVersion != $Version ] && ([ $Scripted -eq 1 ] || ConfirmYesNo "Download and update script?"); then + DoUpdate=1 + Output "Version update available" + else + Output "No update available" + fi + + if [ $DoUpdate -eq 1 ]; then + Output "Performing update" DownloadAndUpdate "https://raw.githubusercontent.com/ChuckPa/PlexDBRepair/master/DBRepair.sh" "$ScriptWorkingDirectory/$ScriptName" exit 0 - else - Output "Download aborted" fi - - else - Output "No update available" - fi + + if [ $Scripted -eq 1 ]; then + exit 0 + fi ;; # Quit