Introduce timeout for wget/curl in net download

ensures the download terminates after 5min, even if the server stalled.

closes https://github.com/official-stockfish/Stockfish/pull/6608

No functional change
This commit is contained in:
Joost VandeVondele
2026-02-13 06:57:08 +01:00
parent 83e42045a6
commit 99221e5ee6
+11 -9
View File
@@ -1,11 +1,11 @@
#!/bin/sh #!/bin/sh
wget_or_curl=$( (command -v wget > /dev/null 2>&1 && echo "wget -qO-") || \ # download commands with a 5min time-out to ensure things fail if the server stalls
(command -v curl > /dev/null 2>&1 && echo "curl -skL")) wget_or_curl=$( (command -v wget >/dev/null 2>&1 && echo "wget -qO- --timeout=300 --tries=1") ||
(command -v curl >/dev/null 2>&1 && echo "curl -skL --max-time 300"))
sha256sum=$( (command -v shasum >/dev/null 2>&1 && echo "shasum -a 256") ||
sha256sum=$( (command -v shasum > /dev/null 2>&1 && echo "shasum -a 256") || \ (command -v sha256sum >/dev/null 2>&1 && echo "sha256sum"))
(command -v sha256sum > /dev/null 2>&1 && echo "sha256sum"))
if [ -z "$sha256sum" ]; then if [ -z "$sha256sum" ]; then
>&2 echo "sha256sum not found, NNUE files will be assumed valid." >&2 echo "sha256sum not found, NNUE files will be assumed valid."
@@ -52,14 +52,16 @@ fetch_network() {
"https://tests.stockfishchess.org/api/nn/$_filename" \ "https://tests.stockfishchess.org/api/nn/$_filename" \
"https://github.com/official-stockfish/networks/raw/master/$_filename"; do "https://github.com/official-stockfish/networks/raw/master/$_filename"; do
echo "Downloading from $url ..." echo "Downloading from $url ..."
if $wget_or_curl "$url" > "$_filename"; then if $wget_or_curl "$url" >"$_filename"; then
if validate_network "$_filename"; then if validate_network "$_filename"; then
echo "Successfully validated $_filename" echo "Successfully validated $_filename"
else else
echo "Downloaded $_filename is invalid" rm -f $_filename
echo "Downloaded $_filename is invalid, and has been removed."
continue continue
fi fi
else else
rm -f $_filename
echo "Failed to download from $url" echo "Failed to download from $url"
fi fi
if [ -f "$_filename" ]; then if [ -f "$_filename" ]; then
@@ -72,5 +74,5 @@ fetch_network() {
return 1 return 1
} }
fetch_network EvalFileDefaultNameBig && \ fetch_network EvalFileDefaultNameBig &&
fetch_network EvalFileDefaultNameSmall fetch_network EvalFileDefaultNameSmall