Browse Source

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

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

Tree-SHA512: 5c117d18fd6e73cdbbf39c610f521bccb32ca7100eb8d5d5ed9c664514c37b32bd2f94f357b64c34f7c093e0c09312ecff330b7f5c708700d4b48643780ebac5
0.15
Wladimir J. van der Laan 7 years ago
parent
commit
b750b33c3c
No known key found for this signature in database
GPG Key ID: 1E4AED62986CD25D
  1. 8
      contrib/verifybinaries/README.md
  2. 43
      contrib/verifybinaries/verify.sh

8
contrib/verifybinaries/README.md

@ -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

43
contrib/verifybinaries/verify.sh

@ -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}/" 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 else
RCVERSION="${STRIPPEDLAST##*-}"
PLATFORM="${VERSION##*-}"
VERSION="$STRIPPEDNEXTTOLAST"
fi
BASEDIR="$BASEDIR$VERSION/" 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

Loading…
Cancel
Save