Skip to content

Commit

Permalink
Improve build system
Browse files Browse the repository at this point in the history
  • Loading branch information
MinetaS committed Sep 1, 2024
1 parent 4510442 commit 4b4f7b1
Show file tree
Hide file tree
Showing 45 changed files with 3,749 additions and 2,873 deletions.
120 changes: 0 additions & 120 deletions scripts/get_native_properties.sh

This file was deleted.

75 changes: 75 additions & 0 deletions scripts/net.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#!/bin/sh

wget_or_curl=$( (command -v wget > /dev/null 2>&1 && echo "wget -q") || \
(command -v curl > /dev/null 2>&1 && echo "curl -L -s -k"))

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."
exit 1
fi

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."
fi

get_nnue_filename() {
grep "$1" evaluate.h | grep "#define" | sed 's/.*\(nn-[a-z0-9]\{12\}.nnue\).*/\1/'
}

validate_network() {
# If no sha256sum command is available, assume the file is always valid.
if [ -n "$sha256sum" ] && [ -f "$1" ]; then
if [ "$1" != "nn-$($sha256sum "$1" | cut -c 1-12).nnue" ]; then
rm -f "$1"
return 1
fi
fi
}

fetch_network() {
_filename="$(get_nnue_filename "$1")"

if [ -z "$_filename" ]; then
>&2 echo "NNUE file name not found for: $1"
return 1
fi

if [ -f "$_filename" ]; then
if validate_network "$_filename"; then
echo "Existing $_filename validated, skipping download"
return
else
echo "Removing invalid NNUE file: $_filename"
fi
fi

for url in \
"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"; then
if validate_network "$_filename"; then
echo "Successfully validated $_filename"
else
echo "Downloaded $_filename is invalid"
continue
fi
else
echo "Failed to download from $url"
fi
if [ -f "$_filename" ]; then
return
fi
done

# Download was not successful in the loop, return false.
>&2 echo "Failed to download $_filename"
return 1
}

fetch_network EvalFileDefaultNameBig && \
fetch_network EvalFileDefaultNameSmall
Loading

0 comments on commit 4b4f7b1

Please sign in to comment.