mirror of
https://github.com/dockur/windows.git
synced 2026-08-03 12:37:20 +01:00
feat: Use retry function from base image (#1916)
This commit is contained in:
+43
-55
@@ -755,13 +755,12 @@ downloadFile() {
|
|||||||
|
|
||||||
local iso="$1"
|
local iso="$1"
|
||||||
local url="$2"
|
local url="$2"
|
||||||
local sum="$3"
|
local size="$3"
|
||||||
local size="$4"
|
local desc="$4"
|
||||||
local desc="$6"
|
local connections="${5:-1}"
|
||||||
local connections="${7:-1}"
|
|
||||||
local msg="Downloading $desc"
|
local msg="Downloading $desc"
|
||||||
local total total_gb domain dots
|
|
||||||
local console_msg="$msg"
|
local console_msg="$msg"
|
||||||
|
local domain dots
|
||||||
|
|
||||||
domain=$(echo "$url" | awk -F/ '{print $3}')
|
domain=$(echo "$url" | awk -F/ '{print $3}')
|
||||||
dots=$(echo "$domain" | tr -cd '.' | wc -c)
|
dots=$(echo "$domain" | tr -cd '.' | wc -c)
|
||||||
@@ -773,44 +772,13 @@ downloadFile() {
|
|||||||
|
|
||||||
info "$console_msg..."
|
info "$console_msg..."
|
||||||
|
|
||||||
if downloadToFile \
|
downloadToFile \
|
||||||
"$url" \
|
"$url" \
|
||||||
"$iso" \
|
"$iso" \
|
||||||
"$msg" \
|
"$msg" \
|
||||||
"${size:-0}" \
|
"${size:-0}" \
|
||||||
"$connections" \
|
"$connections" \
|
||||||
"Y"; then
|
"Y"
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
local rc=$?
|
|
||||||
(( rc != 0 )) && return "$rc"
|
|
||||||
|
|
||||||
if ! total=$(stat -c%s -- "$iso"); then
|
|
||||||
error "Failed to determine downloaded file size: $iso"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
total_gb=$(formatBytes "$total") || return 1
|
|
||||||
|
|
||||||
if (( total < 100000000 )); then
|
|
||||||
|
|
||||||
error "Invalid download link: $url (is only $total_gb ?). Please report this at $SUPPORT/issues"
|
|
||||||
|
|
||||||
if ! rm -f -- "$iso" "$iso.aria2"; then
|
|
||||||
warn "failed to remove invalid download \"$iso\"!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Status 2 means the download completed but failed deterministic validation.
|
|
||||||
verifyFile "$iso" "$size" "$total" "$sum" || return 2
|
|
||||||
|
|
||||||
# Extract the .iso from the compressed archive if needed.
|
|
||||||
isCompressed "$url" && UNPACK="Y"
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tryDownload() {
|
tryDownload() {
|
||||||
@@ -819,21 +787,41 @@ tryDownload() {
|
|||||||
local url="$2"
|
local url="$2"
|
||||||
local sum="$3"
|
local sum="$3"
|
||||||
local size="$4"
|
local size="$4"
|
||||||
local lang="$5"
|
|
||||||
local desc="$6"
|
local desc="$6"
|
||||||
local seconds="$7"
|
local seconds="$7"
|
||||||
|
local total rc=0
|
||||||
|
|
||||||
downloadRetry \
|
if downloadRetry \
|
||||||
"$iso" \
|
"$iso" \
|
||||||
"${CONNECTIONS:-1}" \
|
"${CONNECTIONS:-1}" \
|
||||||
"$seconds" \
|
"$seconds" \
|
||||||
"$desc" \
|
"$desc" \
|
||||||
"$iso" \
|
"100000000" \
|
||||||
"$url" \
|
"$iso" \
|
||||||
"$sum" \
|
"$url" \
|
||||||
"$size" \
|
"$size" \
|
||||||
"$lang" \
|
"$desc"; then
|
||||||
"$desc"
|
rc=0
|
||||||
|
else
|
||||||
|
rc=$?
|
||||||
|
fi
|
||||||
|
|
||||||
|
(( rc == 0 )) || return "$rc"
|
||||||
|
|
||||||
|
# The shared helper already inspected the file, so this should
|
||||||
|
# only fail if the downloaded file was removed unexpectedly afterward.
|
||||||
|
if ! total=$(stat -c%s -- "$iso" 2>/dev/null); then
|
||||||
|
error "Failed to determine downloaded file size: $iso"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Status 2 means the completed download failed deterministic validation.
|
||||||
|
verifyFile "$iso" "$size" "$total" "$sum" || return 2
|
||||||
|
|
||||||
|
# Extract the .iso from the compressed archive if needed.
|
||||||
|
isCompressed "$url" && UNPACK="Y"
|
||||||
|
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
fallbackEnglish() {
|
fallbackEnglish() {
|
||||||
|
|||||||
Reference in New Issue
Block a user