Build system: start moving the download handler to its own file
parent
eb8db35615
commit
b9006cc6ea
|
@ -17,6 +17,7 @@
|
|||
|
||||
source scripts/lib.sh
|
||||
|
||||
#TODO: move this to download.sh
|
||||
echo ">>> Checking download cache for unneeded or corrupted files..."
|
||||
for file in $(ls .download_cache); do
|
||||
#TODO: remove if unknown shasum
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
if [ "$#" -lt 3 -o "$#" -gt 3 ]; then
|
||||
echo "Usage: $0 URL DESTINATION SHA256SUM"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source scripts/lib.sh
|
||||
|
||||
URL="$1"
|
||||
DESTINATION="$2"
|
||||
SHA256SUM="$3"
|
||||
|
||||
if command -v wget >/dev/null 2>&1; then
|
||||
USE_WGET=yes
|
||||
else
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
USE_WGET=no
|
||||
else
|
||||
echo "Found neither wget nor curl. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d .download_cache ]; then
|
||||
echo "Cache directory missing."
|
||||
create_directory .download_cache
|
||||
fi
|
||||
|
||||
#TODO: keep track of which cached file is downloaded to which destination
|
||||
#TODO: when downloading a file with a new hash to the same destination, mark the old one as no longer in use
|
||||
#TODO: if there is an even older one for the same download path, delete it
|
||||
#TODO: remove cache maintenance from clean_dependencies
|
||||
|
||||
if [ -f ".download_cache/$SHA256SUM" ]; then
|
||||
if check_sha256 ".download_cache/$SHA256SUM" "$SHA256SUM"; then
|
||||
echo "Using locally cached file for $DESTINATION"
|
||||
cp ".download_cache/$SHA256SUM" "$DESTINATION"
|
||||
exit 0
|
||||
else
|
||||
echo "Locally cached file for $DESTINATION is corrupted."
|
||||
rm ".download_cache/$SHA256SUM"
|
||||
$0 "$URL" "$DESTINATION" "$SHA256SUM"
|
||||
exit $?
|
||||
fi
|
||||
else
|
||||
echo -n "Downloading $URL to $DESTINATION... "
|
||||
if [ $USE_WGET = yes ]; then
|
||||
wget -O ".download_cache/$SHA256SUM" "$URL" >/dev/null 2>&1
|
||||
else
|
||||
curl -L "$URL" --output ".download_cache/$SHA256SUM" >/dev/null 2>&1
|
||||
fi
|
||||
if check_sha256 ".download_cache/$SHA256SUM" "$SHA256SUM"; then
|
||||
cp ".download_cache/$SHA256SUM" "$DESTINATION"
|
||||
echo "done."
|
||||
exit 0
|
||||
else
|
||||
echo "error."
|
||||
echo "Checksum verification failed. Your download is either corrupted or the file has been altered. Removing file."
|
||||
rm ".download_cache/$SHA256SUM"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
|
@ -17,74 +17,19 @@
|
|||
|
||||
source scripts/lib.sh
|
||||
|
||||
echo -n "Wget or curl? "
|
||||
if command -v wget >/dev/null 2>&1; then
|
||||
USE_WGET=yes
|
||||
echo "wget"
|
||||
else
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
USE_WGET=no
|
||||
echo "curl"
|
||||
else
|
||||
echo "Found neither wget nor curl. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
function download {
|
||||
URL="$1"
|
||||
DESTINATION="$2"
|
||||
SHA256SUM="$3"
|
||||
|
||||
if [ ! -d .download_cache ]; then
|
||||
echo "Cache directory missing."
|
||||
create_directory .download_cache
|
||||
fi
|
||||
|
||||
if [ -f ".download_cache/$SHA256SUM" ]; then
|
||||
if check_sha256 ".download_cache/$SHA256SUM" "$SHA256SUM"; then
|
||||
echo "Using locally cached file for $DESTINATION"
|
||||
cp ".download_cache/$SHA256SUM" "$DESTINATION"
|
||||
return 0
|
||||
else
|
||||
echo "Locally cached file for $DESTINATION is corrupted."
|
||||
rm ".download_cache/$SHA256SUM"
|
||||
download "$URL" "$DESTINATION" "$SHA256SUM"
|
||||
return $?
|
||||
fi
|
||||
else
|
||||
echo -n "Downloading $URL to $DESTINATION... "
|
||||
if [ $USE_WGET = yes ]; then
|
||||
wget -O ".download_cache/$SHA256SUM" "$URL" >/dev/null 2>&1
|
||||
else
|
||||
curl -L "$URL" --output ".download_cache/$SHA256SUM" >/dev/null 2>&1
|
||||
fi
|
||||
if check_sha256 ".download_cache/$SHA256SUM" "$SHA256SUM"; then
|
||||
cp ".download_cache/$SHA256SUM" "$DESTINATION"
|
||||
echo "done."
|
||||
return 0
|
||||
else
|
||||
echo "error."
|
||||
echo "Checksum verification failed. Your download is either corrupted or the file has been altered. Removing file."
|
||||
rm ".download_cache/$SHA256SUM"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
scripts/clean.sh
|
||||
scripts/clean_dependencies.sh
|
||||
|
||||
set -e # failures are not acceptable here
|
||||
create_directory dependencies/tmp
|
||||
download https://github.com/DuffsDevice/tiny-utf8/archive/refs/tags/v4.4.3.tar.gz dependencies/tmp/tiny-utf8.tar.gz 8e3f61651909c9f3105d3501932a96aa65733127fb6e7cf94cb1b0a2dff42c8f
|
||||
download https://github.com/fpagliughi/sockpp/archive/refs/tags/v0.8.1.tar.gz dependencies/tmp/sockpp.tar.gz a8aedff8bd8c1da530b91be650352008fddabc9f1df0d19701d76cbc359c8651
|
||||
download https://www.zlib.net/zlib-1.3.1.tar.xz dependencies/tmp/zlib.tar.xz 38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32
|
||||
scripts/download.sh https://github.com/DuffsDevice/tiny-utf8/archive/refs/tags/v4.4.3.tar.gz dependencies/tmp/tiny-utf8.tar.gz 8e3f61651909c9f3105d3501932a96aa65733127fb6e7cf94cb1b0a2dff42c8f
|
||||
scripts/download.sh https://github.com/fpagliughi/sockpp/archive/refs/tags/v0.8.1.tar.gz dependencies/tmp/sockpp.tar.gz a8aedff8bd8c1da530b91be650352008fddabc9f1df0d19701d76cbc359c8651
|
||||
scripts/download.sh https://www.zlib.net/zlib-1.3.1.tar.xz dependencies/tmp/zlib.tar.xz 38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32
|
||||
|
||||
#TODO: figure out how to cache shaderc
|
||||
#also TODO: target a specific commit
|
||||
git clone --branch known-good https://github.com/google/shaderc.git dependencies/tmp/shaderc
|
||||
#download https://github.com/google/shaderc/archive/refs/tags/v2023.7.tar.gz dependencies/tmp/shaderc.tar.gz 681e1340726a0bf46bea7e31f10cbfe78e01e4446a35d90fedc2b78d400fcdeb
|
||||
#scripts/download.sh https://github.com/google/shaderc/archive/refs/tags/v2023.7.tar.gz dependencies/tmp/shaderc.tar.gz 681e1340726a0bf46bea7e31f10cbfe78e01e4446a35d90fedc2b78d400fcdeb
|
||||
|
||||
echo -n ">>> Extracting tiny-utf8... "
|
||||
gzip -d dependencies/tmp/tiny-utf8.tar.gz
|
||||
|
|
Loading…
Reference in New Issue