mirror of
https://github.com/ChuckPa/PlexDBRepair.git
synced 2025-11-06 03:08:55 -05:00
Merge pull request #102 from causefx/causefx-patch-update-feature
Add update feature to DBRepair.sh
This commit is contained in:
commit
2d7e46dd6d
65
DBRepair.sh
65
DBRepair.sh
@ -1435,10 +1435,46 @@ DoUpdateTimestamp() {
|
||||
TimeStamp="$(date "+%Y-%m-%d_%H.%M.%S")"
|
||||
}
|
||||
|
||||
# Get latest version from Github
|
||||
GetLatestRelease() {
|
||||
response=$(curl -s "https://api.github.com/repos/ChuckPa/PlexDBRepair/tags")
|
||||
if [ $? -eq 0 ]; then
|
||||
LatestVersion=$(echo "$response" | grep -oP '"name":\s*"\K[^"]*' | sed -n '1p')
|
||||
else
|
||||
LatestVersion=$Version
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# Download and update script
|
||||
DownloadAndUpdate() {
|
||||
url="$1"
|
||||
filename="$2"
|
||||
|
||||
# Download the file and check if the download was successful
|
||||
if curl -s "$url" --output "$filename"; then
|
||||
Output "Update downloaded successfully"
|
||||
|
||||
# Check if the file was written to
|
||||
if [ -f "$filename" ]; then
|
||||
Output "Update written successfully"
|
||||
else
|
||||
Output "Error: File not written"
|
||||
fi
|
||||
else
|
||||
Output "Error: Download failed"
|
||||
fi
|
||||
}
|
||||
|
||||
#############################################################
|
||||
# Main utility begins here #
|
||||
#############################################################
|
||||
|
||||
# Set Script Path
|
||||
ScriptPath="$( readlink -f "$0")"
|
||||
ScriptName="$(basename "$ScriptPath")"
|
||||
ScriptWorkingDirectory="$(dirname "$ScriptPath")"
|
||||
|
||||
# Initialize LastName LastTimestamp
|
||||
SetLast "" ""
|
||||
|
||||
@ -1569,6 +1605,7 @@ do
|
||||
echo " 11 - 'status' - Report status of PMS (run-state and databases)"
|
||||
echo " 12 - 'undo' - Undo last successful command"
|
||||
echo ""
|
||||
echo " 88 - 'update' - Check for script update"
|
||||
echo " 99 - 'quit' - Quit immediately. Keep all temporary files."
|
||||
echo " 'exit' - Exit with cleanup options."
|
||||
fi
|
||||
@ -1870,6 +1907,34 @@ do
|
||||
DoUndo
|
||||
;;
|
||||
|
||||
88|upda*)
|
||||
|
||||
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 or user declined update"
|
||||
fi
|
||||
|
||||
# Check if script path is writable
|
||||
if [ $DoUpdate -eq 1 ]; then
|
||||
if [ -w "$ScriptWorkingDirectory" ]; then
|
||||
Output "Performing update"
|
||||
DownloadAndUpdate "https://raw.githubusercontent.com/ChuckPa/PlexDBRepair/master/DBRepair.sh" "$ScriptWorkingDirectory/$ScriptName"
|
||||
exit 0
|
||||
else
|
||||
Output "Script path is not writable."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $Scripted -eq 1 ]; then
|
||||
exit 0
|
||||
fi
|
||||
;;
|
||||
|
||||
# Quit
|
||||
99|quit)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user