diff options
Diffstat (limited to 'third_party/jinja2/get_jinja2.sh')
-rwxr-xr-x | third_party/jinja2/get_jinja2.sh | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/third_party/jinja2/get_jinja2.sh b/third_party/jinja2/get_jinja2.sh new file mode 100755 index 0000000..9502146 --- /dev/null +++ b/third_party/jinja2/get_jinja2.sh @@ -0,0 +1,123 @@ +#!/bin/bash +# Download and extract Jinja2 +# Homepage: +# http://jinja.pocoo.org/ +# Installation instructions: +# http://jinja.pocoo.org/docs/intro/#from-the-tarball-release +# Download page: +# https://pypi.python.org/pypi/Jinja2 +PACKAGE='Jinja2' +VERSION='2.7.1' +PACKAGE_DIR='jinja2' + +CHROMIUM_FILES="README.chromium OWNERS get_jinja2.sh" +EXTRA_FILES='LICENSE AUTHORS' +REMOVE_FILES='testsuite' + +SRC_URL='https://pypi.python.org/packages/source/' +SRC_URL+="${PACKAGE:0:1}/$PACKAGE/$PACKAGE-$VERSION.tar.gz" +FILENAME="$(basename $SRC_URL)" +MD5_FILENAME="$FILENAME.md5" +SHA512_FILENAME="$FILENAME.sha512" +CHROMIUM_FILES+=" $MD5_FILENAME $SHA512_FILENAME" + +BUILD_DIR="$PACKAGE-$VERSION" +THIRD_PARTY="$(dirname $(realpath $(dirname "${BASH_SOURCE[0]}")))" +INSTALL_DIR="$THIRD_PARTY/$PACKAGE_DIR" +OUT_DIR="$INSTALL_DIR/$BUILD_DIR/$PACKAGE_DIR" +OLD_DIR="$THIRD_PARTY/$PACKAGE_DIR.old" + +function check_hashes { + # Hashes generated via: + # FILENAME=Jinja2-2.7.1.tar.gz + # md5sum "$FILENAME" > "$FILENAME.md5" + # sha512sum "$FILENAME" > "$FILENAME.sha512" + # unset FILENAME + + # MD5 + if ! [ -f "$MD5_FILENAME" ] + then + echo "MD5 hash file $MD5_FILENAME not found, could not verify archive" + exit 1 + fi + + # 32-digit hash, followed by filename + MD5_HASHFILE_REGEX="^[0-9a-f]{32} $FILENAME" + if ! grep --extended-regex --line-regex --silent \ + "$MD5_HASHFILE_REGEX" "$MD5_FILENAME" + then + echo "MD5 hash file $MD5_FILENAME does not contain hash for $FILENAME," \ + 'could not verify archive' + echo 'Hash file contents are:' + cat "$MD5_FILENAME" + exit 1 + fi + + if ! md5sum --check "$MD5_FILENAME" + then + echo 'MD5 hash does not match,' \ + "archive file $FILENAME corrupt or compromised!" + exit 1 + fi + + # SHA-512 + if ! [ -f "$SHA512_FILENAME" ] + then + echo "SHA-512 hash file $SHA512_FILENAME not found," \ + 'could not verify archive' + exit 1 + fi + + # 128-digit hash, followed by filename + SHA512_HASHFILE_REGEX="^[0-9a-f]{128} $FILENAME" + if ! grep --extended-regex --line-regex --silent \ + "$SHA512_HASHFILE_REGEX" "$SHA512_FILENAME" + then + echo "SHA-512 hash file $SHA512_FILENAME does not contain hash for" \ + "$FILENAME, could not verify archive" + echo 'Hash file contents are:' + cat "$SHA512_FILENAME" + exit 1 + fi + + if ! sha512sum --check "$SHA512_FILENAME" + then + echo 'SHA-512 hash does not match,' \ + "archive file $FILENAME corrupt or compromised!" + exit 1 + fi +} + + +################################################################################ +# Body + +cd "$INSTALL_DIR" +echo "Downloading $SRC_URL" +curl --remote-name "$SRC_URL" +check_hashes +tar xvzf "$FILENAME" +# Copy extra files over +for FILE in $CHROMIUM_FILES +do + cp "$FILE" "$OUT_DIR" +done + +cd "$BUILD_DIR" +for FILE in $EXTRA_FILES +do + cp "$FILE" "$OUT_DIR" +done + +cd "$OUT_DIR" +for FILE in $REMOVE_FILES +do + rm -fr "$FILE" +done + +# Replace with new directory +cd .. +mv "$INSTALL_DIR" "$OLD_DIR" +mv "$PACKAGE_DIR" "$INSTALL_DIR" +cd "$INSTALL_DIR" +rm -fr "$OLD_DIR" |