Merge #10276: contrib/verifybinaries: allow filtering by platform

8d4dafd contrib/verifybinaries: allow filtering by platform (Andres G. Aragoneses)

Tree-SHA512: 5c117d18fd6e73cdbbf39c610f521bccb32ca7100eb8d5d5ed9c664514c37b32bd2f94f357b64c34f7c093e0c09312ecff330b7f5c708700d4b48643780ebac5
This commit is contained in:
Wladimir J. van der Laan 2017-06-22 19:33:00 +02:00
commit b750b33c3c
No known key found for this signature in database
GPG Key ID: 1E4AED62986CD25D
2 changed files with 47 additions and 6 deletions

View File

@ -26,6 +26,14 @@ The script returns 0 if everything passes the checks. It returns 1 if either the
./verify.sh bitcoin-core-0.13.0-rc3 ./verify.sh bitcoin-core-0.13.0-rc3
``` ```
If you only want to download the binaries of certain platform, add the corresponding suffix, e.g.:
```sh
./verify.sh bitcoin-core-0.11.2-osx
./verify.sh 0.12.0-linux
./verify.sh bitcoin-core-0.13.0-rc3-win64
```
If you do not want to keep the downloaded binaries, specify anything as the second parameter. If you do not want to keep the downloaded binaries, specify anything as the second parameter.
```sh ```sh

View File

@ -42,13 +42,36 @@ if [ -n "$1" ]; then
VERSION="$VERSIONPREFIX$1" VERSION="$VERSIONPREFIX$1"
fi fi
#now let's see if the version string contains "rc", and strip it off if it does STRIPPEDLAST="${VERSION%-*}"
# and simultaneously add RCSUBDIR to BASEDIR, where we will look for SIGNATUREFILENAME
if [[ $VERSION == *"$RCVERSIONSTRING"* ]]; then #now let's see if the version string contains "rc" or a platform name (e.g. "osx")
BASEDIR="$BASEDIR${VERSION/%-$RCVERSIONSTRING*}/" if [[ "$STRIPPEDLAST-" == "$VERSIONPREFIX" ]]; then
BASEDIR="$BASEDIR$RCSUBDIR.$RCVERSIONSTRING${VERSION: -1}/"
else
BASEDIR="$BASEDIR$VERSION/" BASEDIR="$BASEDIR$VERSION/"
else
# let's examine the last part to see if it's rc and/or platform name
STRIPPEDNEXTTOLAST="${STRIPPEDLAST%-*}"
if [[ "$STRIPPEDNEXTTOLAST-" == "$VERSIONPREFIX" ]]; then
LASTSUFFIX="${VERSION##*-}"
VERSION="$STRIPPEDLAST"
if [[ $LASTSUFFIX == *"$RCVERSIONSTRING"* ]]; then
RCVERSION="$LASTSUFFIX"
else
PLATFORM="$LASTSUFFIX"
fi
else
RCVERSION="${STRIPPEDLAST##*-}"
PLATFORM="${VERSION##*-}"
VERSION="$STRIPPEDNEXTTOLAST"
fi
BASEDIR="$BASEDIR$VERSION/"
if [[ $RCVERSION == *"$RCVERSIONSTRING"* ]]; then
BASEDIR="$BASEDIR$RCSUBDIR.$RCVERSION/"
fi
fi fi
SIGNATUREFILE="$BASEDIR$SIGNATUREFILENAME" SIGNATUREFILE="$BASEDIR$SIGNATUREFILENAME"
@ -92,12 +115,22 @@ if [ $RET -ne 0 ]; then
exit "$RET" exit "$RET"
fi fi
if [ -n "$PLATFORM" ]; then
grep $PLATFORM $TMPFILE > "$TMPFILE-plat"
TMPFILESIZE=$(stat -c%s "$TMPFILE-plat")
if [ $TMPFILESIZE -eq 0 ]; then
echo "error: no files matched the platform specified" && exit 3
fi
mv "$TMPFILE-plat" $TMPFILE
fi
#here we extract the filenames from the signature file #here we extract the filenames from the signature file
FILES=$(awk '{print $2}' "$TMPFILE") FILES=$(awk '{print $2}' "$TMPFILE")
#and download these one by one #and download these one by one
for file in $FILES for file in $FILES
do do
echo "Downloading $file"
wget --quiet -N "$BASEDIR$file" wget --quiet -N "$BASEDIR$file"
done done