mirror of
https://github.com/LukeZGD/Legacy-iOS-Kit.git
synced 2025-01-12 00:09:10 +01:00
Add an updater
i would advise users to just git clone instead, but whatever
This commit is contained in:
parent
d53e674247
commit
778c2974e6
64
restore.sh
64
restore.sh
@ -104,14 +104,15 @@ set_tool_paths() {
|
|||||||
|
|
||||||
# architecture check
|
# architecture check
|
||||||
if [[ $(uname -m) == "a"* && $(getconf LONG_BIT) == 64 ]]; then
|
if [[ $(uname -m) == "a"* && $(getconf LONG_BIT) == 64 ]]; then
|
||||||
dir+="arm64"
|
platform_arch="arm64"
|
||||||
elif [[ $(uname -m) == "a"* ]]; then
|
elif [[ $(uname -m) == "a"* ]]; then
|
||||||
dir+="armhf"
|
platform_arch="armhf"
|
||||||
elif [[ $(uname -m) == "x86_64" ]]; then
|
elif [[ $(uname -m) == "x86_64" ]]; then
|
||||||
dir+="x86_64"
|
platform_arch="x86_64"
|
||||||
else
|
else
|
||||||
error "Your architecture ($(uname -m)) is not supported."
|
error "Your architecture ($(uname -m)) is not supported."
|
||||||
fi
|
fi
|
||||||
|
dir+="$platform_arch"
|
||||||
|
|
||||||
# version check
|
# version check
|
||||||
if [[ -n $UBUNTU_CODENAME ]]; then
|
if [[ -n $UBUNTU_CODENAME ]]; then
|
||||||
@ -376,8 +377,48 @@ install_depends() {
|
|||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
version_get() {
|
||||||
|
log "Checking for updates..."
|
||||||
|
github_api=$(curl https://api.github.com/repos/LukeZGD/Legacy-iOS-Kit/releases/latest 2>/dev/null)
|
||||||
|
version_latest=$(echo "$github_api" | $jq -r '.assets[] | select(.name|test("complete")) | .name' | cut -c 25- | cut -c -9)
|
||||||
|
git_hash_latest=$(echo "$github_api" | $jq -r '.assets[] | select(.name|test("git-hash")) | .name' | cut -c 21- | cut -c -7)
|
||||||
|
}
|
||||||
|
|
||||||
|
version_update() {
|
||||||
|
local url
|
||||||
|
local req
|
||||||
|
read -p "$(input 'Do you want to update now? (Y/n): ')" opt
|
||||||
|
if [[ $opt == 'n' || $opt == 'N' ]]; then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if [[ -d .git ]]; then
|
||||||
|
log "Running git pull..."
|
||||||
|
git pull
|
||||||
|
log "Done! Please run the script again"
|
||||||
|
exit
|
||||||
|
elif (( $(ls bin | wc -l) > 1 )); then
|
||||||
|
req=".assets[] | select (.name|test(\"complete\")) | .browser_download_url"
|
||||||
|
elif [[ $platform == "linux" ]]; then
|
||||||
|
req=".assets[] | select (.name|test(\"${platform}_$platform_arch\")) | .browser_download_url"
|
||||||
|
else
|
||||||
|
req=".assets[] | select (.name|test(\"${platform}\")) | .browser_download_url"
|
||||||
|
fi
|
||||||
|
url="$(echo "$github_api" | $jq -r "$req")"
|
||||||
|
log "Downloading: $url"
|
||||||
|
curl -L $url -o tmp/latest.zip
|
||||||
|
if [[ ! -s tmp/latest.zip ]]; then
|
||||||
|
error "Download failed. Please run the script again"
|
||||||
|
fi
|
||||||
|
log "Updating..."
|
||||||
|
cp resources/firstrun tmp 2>/dev/null
|
||||||
|
rm -r bin/ resources/ LICENSE README.md restore*
|
||||||
|
unzip -q tmp/latest.zip -d .
|
||||||
|
cp tmp/firstrun resources 2>/dev/null
|
||||||
|
log "Done! Please run the script again"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
version_check() {
|
version_check() {
|
||||||
local github_api
|
|
||||||
pushd .. >/dev/null
|
pushd .. >/dev/null
|
||||||
if [[ -d .git ]]; then
|
if [[ -d .git ]]; then
|
||||||
git_hash=$(git rev-parse HEAD | cut -c -7)
|
git_hash=$(git rev-parse HEAD | cut -c -7)
|
||||||
@ -392,8 +433,10 @@ version_check() {
|
|||||||
else
|
else
|
||||||
log ".git directory and git_hash file not found, cannot determine version."
|
log ".git directory and git_hash file not found, cannot determine version."
|
||||||
if [[ $no_version_check != 1 ]]; then
|
if [[ $no_version_check != 1 ]]; then
|
||||||
error "Your copy of Legacy iOS Kit is downloaded incorrectly. Do not use the \"Code\" button in GitHub." \
|
warn "Your copy of Legacy iOS Kit is downloaded incorrectly. Do not use the \"Code\" button in GitHub."
|
||||||
"* Please download Legacy iOS Kit using git clone or from GitHub releases: https://github.com/LukeZGD/Legacy-iOS-Kit/releases"
|
print "Please download Legacy iOS Kit using git clone or from GitHub releases: https://github.com/LukeZGD/Legacy-iOS-Kit/releases"
|
||||||
|
version_check
|
||||||
|
version_update
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -402,10 +445,7 @@ version_check() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $no_version_check != 1 ]]; then
|
if [[ $no_version_check != 1 ]]; then
|
||||||
log "Checking for updates..."
|
version_get
|
||||||
github_api=$(curl https://api.github.com/repos/LukeZGD/Legacy-iOS-Kit/releases/latest 2>/dev/null)
|
|
||||||
version_latest=$(echo "$github_api" | grep "latest/Legacy-iOS-Kit_complete" | cut -c 123- | cut -c -9 | sed -e 's/\.$//')
|
|
||||||
git_hash_latest=$(echo "$github_api" | grep "latest/git-hash" | cut -c 119- | cut -c -7)
|
|
||||||
if [[ -z $version_latest ]]; then
|
if [[ -z $version_latest ]]; then
|
||||||
warn "Failed to check for updates. GitHub may be down or blocked by your network."
|
warn "Failed to check for updates. GitHub may be down or blocked by your network."
|
||||||
elif [[ $version_latest != "$version_current" ]]; then
|
elif [[ $version_latest != "$version_current" ]]; then
|
||||||
@ -416,7 +456,7 @@ version_check() {
|
|||||||
print "* Current version: $version_current ($git_hash)"
|
print "* Current version: $version_current ($git_hash)"
|
||||||
print "* Latest version: $version_latest ($git_hash_latest)"
|
print "* Latest version: $version_latest ($git_hash_latest)"
|
||||||
print "* Please download/pull the latest version before proceeding."
|
print "* Please download/pull the latest version before proceeding."
|
||||||
exit
|
version_update
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -2771,7 +2811,7 @@ menu_print_info() {
|
|||||||
if [[ $no_version_check == 1 ]]; then
|
if [[ $no_version_check == 1 ]]; then
|
||||||
warn "No version check flag detected, update check is disabled and no support will be provided."
|
warn "No version check flag detected, update check is disabled and no support will be provided."
|
||||||
fi
|
fi
|
||||||
if [[ $version_latest != "$version_current" ]]; then
|
if [[ $git_hash_latest != "$git_hash" ]]; then
|
||||||
warn "Current version is newer/different than remote: $version_latest ($git_hash_latest)"
|
warn "Current version is newer/different than remote: $version_latest ($git_hash_latest)"
|
||||||
fi
|
fi
|
||||||
print "* Platform: $platform ($platform_ver) $live_cdusb_r"
|
print "* Platform: $platform ($platform_ver) $live_cdusb_r"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user