diff --git a/scripts/net.sh b/scripts/net.sh index 1aa1fbfb1..79a0e0088 100755 --- a/scripts/net.sh +++ b/scripts/net.sh @@ -1,11 +1,11 @@ #!/bin/sh -wget_or_curl=$( (command -v wget > /dev/null 2>&1 && echo "wget -qO-") || \ - (command -v curl > /dev/null 2>&1 && echo "curl -skL")) +# download commands with a 5min time-out to ensure things fail if the server stalls +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") || \ - (command -v sha256sum > /dev/null 2>&1 && echo "sha256sum")) +sha256sum=$( (command -v shasum >/dev/null 2>&1 && echo "shasum -a 256") || + (command -v sha256sum >/dev/null 2>&1 && echo "sha256sum")) if [ -z "$sha256sum" ]; then >&2 echo "sha256sum not found, NNUE files will be assumed valid." @@ -44,7 +44,7 @@ fetch_network() { if [ -z "$wget_or_curl" ]; then >&2 printf "%s\n" "Neither wget or curl is installed." \ - "Install one of these tools to download NNUE files automatically." + "Install one of these tools to download NNUE files automatically." exit 1 fi @@ -52,14 +52,16 @@ fetch_network() { "https://tests.stockfishchess.org/api/nn/$_filename" \ "https://github.com/official-stockfish/networks/raw/master/$_filename"; do echo "Downloading from $url ..." - if $wget_or_curl "$url" > "$_filename"; then + if $wget_or_curl "$url" >"$_filename"; then if validate_network "$_filename"; then echo "Successfully validated $_filename" else - echo "Downloaded $_filename is invalid" + rm -f $_filename + echo "Downloaded $_filename is invalid, and has been removed." continue fi else + rm -f $_filename echo "Failed to download from $url" fi if [ -f "$_filename" ]; then @@ -72,5 +74,5 @@ fetch_network() { return 1 } -fetch_network EvalFileDefaultNameBig && \ -fetch_network EvalFileDefaultNameSmall +fetch_network EvalFileDefaultNameBig && + fetch_network EvalFileDefaultNameSmall