mirror of
https://github.com/dockur/windows.git
synced 2026-07-27 21:42:36 +07:00
feat: Improve Windows version reporting (#1941)
This commit is contained in:
+26
-17
@@ -43,7 +43,7 @@ curlRequest() {
|
||||
local agent="$3"
|
||||
shift 3
|
||||
|
||||
local log reason
|
||||
local log reason
|
||||
local rc=0 response=""
|
||||
|
||||
if ! log=$(mktemp -p "$QEMU_DIR"); then
|
||||
@@ -513,6 +513,7 @@ getWindows() {
|
||||
local version="$1"
|
||||
local lang="$2"
|
||||
local desc="$3"
|
||||
local web_desc="$4"
|
||||
local language edition
|
||||
|
||||
MIDO_SOURCE=""
|
||||
@@ -520,7 +521,8 @@ getWindows() {
|
||||
edition=$(printEdition "$version" "$desc" "Y")
|
||||
|
||||
local msg="Requesting $desc from the Microsoft servers..."
|
||||
info "$msg" && html "$msg"
|
||||
local web_msg="Requesting $web_desc from the Microsoft servers..."
|
||||
info "$msg" && html "$web_msg"
|
||||
|
||||
case "${version,,}" in
|
||||
"win2008r2"* | \
|
||||
@@ -887,9 +889,10 @@ downloadFile() {
|
||||
local url="$2"
|
||||
local size="$3"
|
||||
local desc="$4"
|
||||
local connections="${5:-1}"
|
||||
local msg="Downloading $desc"
|
||||
local console_msg="$msg"
|
||||
local web_desc="$5"
|
||||
local connections="${6:-1}"
|
||||
local msg="Downloading $web_desc"
|
||||
local console_msg="Downloading $desc"
|
||||
local domain dots
|
||||
|
||||
domain=$(echo "$url" | awk -F/ '{print $3}')
|
||||
@@ -919,6 +922,7 @@ tryDownload() {
|
||||
local size="$4"
|
||||
local desc="$6"
|
||||
local seconds="$7"
|
||||
local web_desc="$8"
|
||||
local total rc=0
|
||||
|
||||
if downloadRetry \
|
||||
@@ -930,7 +934,8 @@ tryDownload() {
|
||||
"$iso" \
|
||||
"$url" \
|
||||
"$size" \
|
||||
"$desc"; then
|
||||
"$desc" \
|
||||
"$web_desc"; then
|
||||
rc=0
|
||||
else
|
||||
rc=$?
|
||||
@@ -965,10 +970,11 @@ fallbackEnglish() {
|
||||
local version="$2"
|
||||
local lang="$3"
|
||||
local desc="$4"
|
||||
local culture msg
|
||||
local web_desc="$5"
|
||||
local culture msg web_msg
|
||||
|
||||
msg="No working download method was found for $desc, falling back to English..."
|
||||
info "$msg" && html "$msg"
|
||||
info "$msg"
|
||||
|
||||
# Preserve the requested regional format and keyboard layout.
|
||||
culture=$(getLanguage "$lang" "culture")
|
||||
@@ -996,14 +1002,15 @@ downloadImage() {
|
||||
local success="n"
|
||||
local seconds="5"
|
||||
local detected="$DETECTED"
|
||||
local url sum size base desc language i
|
||||
local url sum size base desc web_desc language i
|
||||
|
||||
if [[ "${version,,}" == "http"* ]]; then
|
||||
|
||||
base=$(basename "$iso")
|
||||
desc=$(fromFile "$base")
|
||||
web_desc="$desc"
|
||||
|
||||
tryDownload "$iso" "$version" "" "" "" "$desc" "$seconds" && return 0
|
||||
tryDownload "$iso" "$version" "" "" "" "$desc" "$seconds" "$web_desc" && return 0
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -1013,6 +1020,7 @@ downloadImage() {
|
||||
fi
|
||||
|
||||
desc=$(printVariant "$version" "" "Y")
|
||||
web_desc=$(printVariant "$version" "")
|
||||
|
||||
if [[ "${lang,,}" != "en" && "${lang,,}" != "en-"* ]]; then
|
||||
|
||||
@@ -1020,9 +1028,10 @@ downloadImage() {
|
||||
|
||||
if ! validVersion "$version" "$lang"; then
|
||||
desc=$(printEdition "$version" "$desc" "Y")
|
||||
web_desc=$(printEdition "$version" "$web_desc")
|
||||
desc+=" in $language"
|
||||
|
||||
fallbackEnglish "$iso" "$version" "$lang" "$desc" && return 0
|
||||
fallbackEnglish "$iso" "$version" "$lang" "$desc" "$web_desc" && return 0
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -1034,11 +1043,11 @@ downloadImage() {
|
||||
tried="y"
|
||||
success="n"
|
||||
|
||||
if getWindows "$version" "$lang" "$desc"; then
|
||||
if getWindows "$version" "$lang" "$desc" "$web_desc"; then
|
||||
success="y"
|
||||
else
|
||||
delay "$seconds"
|
||||
getWindows "$version" "$lang" "$desc" && success="y"
|
||||
getWindows "$version" "$lang" "$desc" "$web_desc" && success="y"
|
||||
fi
|
||||
|
||||
if [[ "$success" == "y" ]]; then
|
||||
@@ -1055,7 +1064,7 @@ downloadImage() {
|
||||
sum=$(getMido "$version" "$lang" "sum")
|
||||
fi
|
||||
|
||||
if tryDownload "$iso" "$MIDO_URL" "$sum" "$size" "$lang" "$desc" "$seconds"; then
|
||||
if tryDownload "$iso" "$MIDO_URL" "$sum" "$size" "$lang" "$desc" "$seconds" "$web_desc"; then
|
||||
# Commit the candidate only after the image was downloaded and verified.
|
||||
DETECTED="$detected"
|
||||
return 0
|
||||
@@ -1084,7 +1093,7 @@ downloadImage() {
|
||||
|
||||
ISO="${ISO%.*}.esd"
|
||||
|
||||
if tryDownload "$ISO" "$ESD" "$ESD_SUM" "$ESD_SIZE" "$lang" "$desc" "$seconds"; then
|
||||
if tryDownload "$ISO" "$ESD" "$ESD_SUM" "$ESD_SIZE" "$lang" "$desc" "$seconds" "$web_desc"; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
@@ -1107,13 +1116,13 @@ downloadImage() {
|
||||
size=$(getSize "$i" "$version" "$lang")
|
||||
sum=$(getHash "$i" "$version" "$lang")
|
||||
|
||||
tryDownload "$iso" "$url" "$sum" "$size" "$lang" "$desc" "$seconds" && return 0
|
||||
tryDownload "$iso" "$url" "$sum" "$size" "$lang" "$desc" "$seconds" "$web_desc" && return 0
|
||||
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "${lang,,}" != "en" && "${lang,,}" != "en-"* ]]; then
|
||||
if fallbackEnglish "$iso" "$version" "$lang" "$desc"; then
|
||||
if fallbackEnglish "$iso" "$version" "$lang" "$desc" "$web_desc"; then
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user