mirror of
https://github.com/mhx/dwarfs.git
synced 2025-08-03 09:47:01 -04:00
32 lines
679 B
Bash
Executable File
32 lines
679 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -ex
|
|
|
|
URL=$1
|
|
FILE=${2:-$(basename "$URL")}
|
|
SHA512SUM="${3}"
|
|
|
|
URLHASH=$(echo -n "$URL" | sha256sum | awk '{print $1}')
|
|
CACHEDIR="$HOME/.pkgcache"
|
|
CACHEFILE="$CACHEDIR/$URLHASH"
|
|
|
|
if [ ! -f "$CACHEFILE" ]; then
|
|
rm -f "$CACHEFILE.tmp"
|
|
curl --retry 5 -L "$URL" > "$CACHEFILE.tmp"
|
|
if [ -n "$SHA512SUM" ]; then
|
|
echo "$SHA512SUM $CACHEFILE.tmp" | sha512sum -c -
|
|
if [ $? -ne 0 ]; then
|
|
echo "Checksum verification failed for $URL"
|
|
rm -f "$CACHEFILE.tmp"
|
|
exit 1
|
|
fi
|
|
fi
|
|
mv -f "$CACHEFILE.tmp" "$CACHEFILE"
|
|
fi
|
|
|
|
if [ "$FILE" == "-" ]; then
|
|
cat "$CACHEFILE"
|
|
else
|
|
cp "$CACHEFILE" "$FILE"
|
|
fi
|