fix(windows): avoid using the LANG variable in the global scope
This commit is contained in:
parent
355f0b14ed
commit
6b052910e8
52
quickget
52
quickget
|
@ -167,7 +167,7 @@ function error_specify_release() {
|
||||||
"releases_${OS}"
|
"releases_${OS}"
|
||||||
echo -en " - Languages:\t"
|
echo -en " - Languages:\t"
|
||||||
"languages_${OS}"
|
"languages_${OS}"
|
||||||
echo "${LANGS[@]}"
|
echo "${I18NS[@]}"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo -en " - Releases:\t"
|
echo -en " - Releases:\t"
|
||||||
|
@ -211,10 +211,10 @@ function error_not_supported_edition() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function error_not_supported_lang() {
|
function error_not_supported_lang() {
|
||||||
echo -e "ERROR! ${LANG} is not a supported $(pretty_name "${OS}") language\n"
|
echo -e "ERROR! ${I18N} is not a supported $(pretty_name "${OS}") language\n"
|
||||||
echo -n ' - Editions: '
|
echo -n ' - Editions: '
|
||||||
for LANG in "${LANGS[@]}"; do
|
for I18N in "${I18NS[@]}"; do
|
||||||
echo -n "${LANG} "
|
echo -n "${I18N} "
|
||||||
done
|
done
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
@ -316,8 +316,8 @@ function csv_data() {
|
||||||
done
|
done
|
||||||
elif [[ "${OS}" == "windows"* ]]; then
|
elif [[ "${OS}" == "windows"* ]]; then
|
||||||
"languages_${OS}"
|
"languages_${OS}"
|
||||||
for LANG in "${LANGS[@]}"; do
|
for I18N in "${I18NS[@]}"; do
|
||||||
echo "${DISPLAY_NAME},${OS},${RELEASE},${LANG},${DOWNLOADER},${PNG},${SVG}"
|
echo "${DISPLAY_NAME},${OS},${RELEASE},${I18N},${DOWNLOADER},${PNG},${SVG}"
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
echo "${DISPLAY_NAME},${OS},${RELEASE},,${DOWNLOADER},${PNG},${SVG}"
|
echo "${DISPLAY_NAME},${OS},${RELEASE},,${DOWNLOADER},${PNG},${SVG}"
|
||||||
|
@ -424,12 +424,12 @@ function test_all() {
|
||||||
done
|
done
|
||||||
elif [[ "${OS}" == "windows"* ]]; then
|
elif [[ "${OS}" == "windows"* ]]; then
|
||||||
"languages_${OS}"
|
"languages_${OS}"
|
||||||
for LANG in "${LANGS[@]}"; do
|
for I18N in "${I18NS[@]}"; do
|
||||||
validate_release releases_"${OS}"
|
validate_release releases_"${OS}"
|
||||||
if [ "${OPERATION}" == "show" ]; then
|
if [ "${OPERATION}" == "show" ]; then
|
||||||
test_result "${OS}" "${RELEASE}" "${LANG}" ""
|
test_result "${OS}" "${RELEASE}" "${I18N}" ""
|
||||||
elif [ "${OPERATION}" == "test" ]; then
|
elif [ "${OPERATION}" == "test" ]; then
|
||||||
test_result "${OS}" "${RELEASE}" "${LANG}" "${URL}" "SKIP"
|
test_result "${OS}" "${RELEASE}" "${I18N}" "${URL}" "SKIP"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
elif [[ "${OS}" == "macos" ]]; then
|
elif [[ "${OS}" == "macos" ]]; then
|
||||||
|
@ -1152,15 +1152,15 @@ function releases_windows() {
|
||||||
|
|
||||||
function languages_windows() {
|
function languages_windows() {
|
||||||
if [ "${RELEASE}" == 8 ]; then
|
if [ "${RELEASE}" == 8 ]; then
|
||||||
LANGS=("Arabic" "Brazilian Portuguese" "Bulgarian" "Chinese (Simplified)" "Chinese (Traditional)" "Chinese (Traditional Hong Kong)" \
|
I18NS=("Arabic" "Brazilian Portuguese" "Bulgarian" "Chinese (Simplified)" "Chinese (Traditional)" "Chinese (Traditional Hong Kong)" \
|
||||||
"Croatian" "Czech" "Danish" "Dutch" "English (United States)" "English International" "Estonian" "Finnish" "French" "German" "Greek" \
|
"Croatian" "Czech" "Danish" "Dutch" "English (United States)" "English International" "Estonian" "Finnish" "French" "German" "Greek" \
|
||||||
"Hebrew" "Hungarian" "Italian" "Japanese" "Latvian" "Lithuanian" "Norwegian" "Polish" "Portuguese" "Romanian" "Russian" "Serbian Latin" \
|
"Hebrew" "Hungarian" "Italian" "Japanese" "Latvian" "Lithuanian" "Norwegian" "Polish" "Portuguese" "Romanian" "Russian" "Serbian Latin" \
|
||||||
"Slovak" "Slovenian" "Spanish" "Swedish" "Thai" "Turkish" "Ukrainian")
|
"Slovak" "Slovenian" "Spanish" "Swedish" "Thai" "Turkish" "Ukrainian")
|
||||||
elif [ "${RELEASE}" == "10-ltsc" ]; then
|
elif [ "${RELEASE}" == "10-ltsc" ]; then
|
||||||
LANGS=("English (United States)" "English (Great Britain)" "Chinese (Simplified)" "Chinese (Traditional)" \
|
I18NS=("English (United States)" "English (Great Britain)" "Chinese (Simplified)" "Chinese (Traditional)" \
|
||||||
"French" "German" "Italian" "Japanese" "Korean" "Portuguese (Brazil)" "Spanish")
|
"French" "German" "Italian" "Japanese" "Korean" "Portuguese (Brazil)" "Spanish")
|
||||||
else
|
else
|
||||||
LANGS=("Arabic" "Brazilian Portuguese" "Bulgarian" "Chinese (Simplified)" "Chinese (Traditional)" "Croatian" "Czech" "Danish" "Dutch" \
|
I18NS=("Arabic" "Brazilian Portuguese" "Bulgarian" "Chinese (Simplified)" "Chinese (Traditional)" "Croatian" "Czech" "Danish" "Dutch" \
|
||||||
"English (United States)" "English International" "Estonian" "Finnish" "French" "French Canadian" "German" "Greek" "Hebrew" "Hungarian" \
|
"English (United States)" "English International" "Estonian" "Finnish" "French" "French Canadian" "German" "Greek" "Hebrew" "Hungarian" \
|
||||||
"Italian" "Japanese" "Korean" "Latvian" "Lithuanian" "Norwegian" "Polish" "Portuguese" "Romanian" "Russian" "Serbian Latin" "Slovak" \
|
"Italian" "Japanese" "Korean" "Latvian" "Lithuanian" "Norwegian" "Polish" "Portuguese" "Romanian" "Russian" "Serbian Latin" "Slovak" \
|
||||||
"Slovenian" "Spanish" "Spanish (Mexico)" "Swedish" "Thai" "Turkish" "Ukrainian")
|
"Slovenian" "Spanish" "Spanish (Mexico)" "Swedish" "Thai" "Turkish" "Ukrainian")
|
||||||
|
@ -1172,7 +1172,7 @@ function releases_windows-server() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function languages_windows-server() {
|
function languages_windows-server() {
|
||||||
LANGS=("English (United States)" "Chinese (Simplified)" "French" "German" "Italian" "Japanese" "Russian" "Spanish")
|
I18NS=("English (United States)" "Chinese (Simplified)" "French" "German" "Italian" "Japanese" "Russian" "Spanish")
|
||||||
}
|
}
|
||||||
|
|
||||||
function releases_zorin() {
|
function releases_zorin() {
|
||||||
|
@ -3088,7 +3088,7 @@ function download_windows_server() {
|
||||||
*) PRETTY_RELEASE="${RELEASE}";;
|
*) PRETTY_RELEASE="${RELEASE}";;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
case "${LANG}" in
|
case "${I18N}" in
|
||||||
"English (Great Britain)")
|
"English (Great Britain)")
|
||||||
CULTURE="en-gb"
|
CULTURE="en-gb"
|
||||||
COUNTRY="GB";;
|
COUNTRY="GB";;
|
||||||
|
@ -3156,7 +3156,7 @@ function download_windows_server() {
|
||||||
# Limit untrusted size for input validation
|
# Limit untrusted size for input validation
|
||||||
iso_download_link="$(echo "$iso_download_link" | head -c 1024)"
|
iso_download_link="$(echo "$iso_download_link" | head -c 1024)"
|
||||||
|
|
||||||
echo "Downloading $(pretty_name "${OS}") ${PRETTY_RELEASE} (${LANG}): $iso_download_link"
|
echo "Downloading $(pretty_name "${OS}") ${PRETTY_RELEASE} (${I18N}): $iso_download_link"
|
||||||
|
|
||||||
# Use highest TLS version for endpoints that support it
|
# Use highest TLS version for endpoints that support it
|
||||||
case "$iso_download_link" in
|
case "$iso_download_link" in
|
||||||
|
@ -3234,7 +3234,7 @@ function download_windows_workstation() {
|
||||||
language_skuid_table_html="$(echo "$language_skuid_table_html" | head -c 10240)"
|
language_skuid_table_html="$(echo "$language_skuid_table_html" | head -c 10240)"
|
||||||
|
|
||||||
# tr: Filter for only alphanumerics or "-" to prevent HTTP parameter injection
|
# tr: Filter for only alphanumerics or "-" to prevent HTTP parameter injection
|
||||||
sku_id="$(echo "$language_skuid_table_html" | grep "${LANG}" | sed 's/"//g' | cut -d ',' -f 1 | cut -d ':' -f 2 | tr -cd '[:alnum:]-' | head -c 16)"
|
sku_id="$(echo "$language_skuid_table_html" | grep "${I18N}" | sed 's/"//g' | cut -d ',' -f 1 | cut -d ':' -f 2 | tr -cd '[:alnum:]-' | head -c 16)"
|
||||||
# echo " - SKU ID: $sku_id"
|
# echo " - SKU ID: $sku_id"
|
||||||
|
|
||||||
# Get ISO download link
|
# Get ISO download link
|
||||||
|
@ -3274,18 +3274,18 @@ function download_windows_workstation() {
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Downloading Windows ${RELEASE} (${LANG}): $iso_download_link"
|
echo "Downloading Windows ${RELEASE} (${I18N}): $iso_download_link"
|
||||||
|
|
||||||
# Download ISO
|
# Download ISO
|
||||||
FILE_NAME="$(echo "$iso_download_link" | cut -d'?' -f1 | cut -d'/' -f5)"
|
FILE_NAME="$(echo "$iso_download_link" | cut -d'?' -f1 | cut -d'/' -f5)"
|
||||||
curl_windows "${VM_PATH}" "${FILE_NAME}" "1.3" "$iso_download_link"
|
curl_windows "${VM_PATH}" "${FILE_NAME}" "1.3" "$iso_download_link"
|
||||||
# Only Windows 11 hashes can be found directly from Microsoft's page.
|
# Only Windows 11 hashes can be found directly from Microsoft's page.
|
||||||
if [ "${windows_version}" == 11 ]; then
|
if [ "${windows_version}" == 11 ]; then
|
||||||
local HASH_LANG="${LANG}"
|
local HASH_I18N="${I18N}"
|
||||||
if [ "${LANG}" == "English (United States)" ]; then
|
if [ "${I18N}" == "English (United States)" ]; then
|
||||||
HASH_LANG="English"
|
HASH_I18N="English"
|
||||||
fi
|
fi
|
||||||
HASH=$(echo "$iso_download_link_html" | sed 's/<tr><td>/\n<tr><td>/g' | grep "$HASH_LANG 64-bit" | grep -o -P '(?<=</td><td>).*(?=</td></tr>)')
|
HASH=$(echo "$iso_download_link_html" | sed 's/<tr><td>/\n<tr><td>/g' | grep "${HASH_I18N} 64-bit" | grep -o -P '(?<=</td><td>).*(?=</td></tr>)')
|
||||||
check_hash "${VM_PATH}/${FILE_NAME}" "${HASH}"
|
check_hash "${VM_PATH}/${FILE_NAME}" "${HASH}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -3435,7 +3435,7 @@ if ((BASH_VERSINFO[0] < 4)); then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LANGS=()
|
I18NS=()
|
||||||
OPERATION=""
|
OPERATION=""
|
||||||
CURL=$(command -v curl)
|
CURL=$(command -v curl)
|
||||||
if [ ! -e "${CURL}" ]; then
|
if [ ! -e "${CURL}" ]; then
|
||||||
|
@ -3546,14 +3546,14 @@ if [ -n "${2}" ]; then
|
||||||
validate_release releases_ubuntu
|
validate_release releases_ubuntu
|
||||||
get_ubuntu
|
get_ubuntu
|
||||||
elif [[ "${OS}" == "windows"* ]]; then
|
elif [[ "${OS}" == "windows"* ]]; then
|
||||||
LANG="English International"
|
I18N="English International"
|
||||||
"languages_${OS}"
|
"languages_${OS}"
|
||||||
if [ -n "${3}" ]; then
|
if [ -n "${3}" ]; then
|
||||||
LANG="${3}"
|
I18N="${3}"
|
||||||
if [[ ! "${LANGS[*]}" =~ ${LANG} ]]; then
|
if [[ ! "${I18NS[*]}" =~ ${I18N} ]]; then
|
||||||
error_not_supported_lang
|
error_not_supported_lang
|
||||||
fi
|
fi
|
||||||
VM_PATH="$(echo "${OS}-${RELEASE}-${LANG// /-}" | tr -d '()')"
|
VM_PATH="$(echo "${OS}-${RELEASE}-${I18N// /-}" | tr -d '()')"
|
||||||
fi
|
fi
|
||||||
validate_release "releases_${OS}"
|
validate_release "releases_${OS}"
|
||||||
get_windows
|
get_windows
|
||||||
|
|
Loading…
Reference in New Issue