OLD | NEW |
(Empty) | |
| 1 #!/bin/bash |
| 2 # Download and extract Jinja2 |
| 3 # Homepage: |
| 4 # http://jinja.pocoo.org/ |
| 5 # Installation instructions: |
| 6 # http://jinja.pocoo.org/docs/intro/#from-the-tarball-release |
| 7 # Download page: |
| 8 # https://pypi.python.org/pypi/Jinja2 |
| 9 PACKAGE='Jinja2' |
| 10 VERSION='2.7.1' |
| 11 PACKAGE_DIR='jinja2' |
| 12 |
| 13 CHROMIUM_FILES="README.chromium OWNERS get_jinja2.sh" |
| 14 EXTRA_FILES='LICENSE AUTHORS' |
| 15 REMOVE_FILES='testsuite' |
| 16 |
| 17 SRC_URL='https://pypi.python.org/packages/source/' |
| 18 SRC_URL+="${PACKAGE:0:1}/$PACKAGE/$PACKAGE-$VERSION.tar.gz" |
| 19 FILENAME="$(basename $SRC_URL)" |
| 20 MD5_FILENAME="$FILENAME.md5" |
| 21 SHA512_FILENAME="$FILENAME.sha512" |
| 22 CHROMIUM_FILES+=" $MD5_FILENAME $SHA512_FILENAME" |
| 23 |
| 24 BUILD_DIR="$PACKAGE-$VERSION" |
| 25 THIRD_PARTY="$(dirname $(realpath $(dirname "${BASH_SOURCE[0]}")))" |
| 26 INSTALL_DIR="$THIRD_PARTY/$PACKAGE_DIR" |
| 27 OUT_DIR="$INSTALL_DIR/$BUILD_DIR/$PACKAGE_DIR" |
| 28 OLD_DIR="$THIRD_PARTY/$PACKAGE_DIR.old" |
| 29 |
| 30 function check_hashes { |
| 31 # Hashes generated via: |
| 32 # FILENAME=Jinja2-2.7.1.tar.gz |
| 33 # md5sum "$FILENAME" > "$FILENAME.md5" |
| 34 # sha512sum "$FILENAME" > "$FILENAME.sha512" |
| 35 # unset FILENAME |
| 36 |
| 37 # MD5 |
| 38 if ! [ -f "$MD5_FILENAME" ] |
| 39 then |
| 40 echo "MD5 hash file $MD5_FILENAME not found, could not verify archive" |
| 41 exit 1 |
| 42 fi |
| 43 |
| 44 # 32-digit hash, followed by filename |
| 45 MD5_HASHFILE_REGEX="^[0-9a-f]{32} $FILENAME" |
| 46 if ! grep --extended-regex --line-regex --silent \ |
| 47 "$MD5_HASHFILE_REGEX" "$MD5_FILENAME" |
| 48 then |
| 49 echo "MD5 hash file $MD5_FILENAME does not contain hash for $FILENAME," \ |
| 50 'could not verify archive' |
| 51 echo 'Hash file contents are:' |
| 52 cat "$MD5_FILENAME" |
| 53 exit 1 |
| 54 fi |
| 55 |
| 56 if ! md5sum --check "$MD5_FILENAME" |
| 57 then |
| 58 echo 'MD5 hash does not match,' \ |
| 59 "archive file $FILENAME corrupt or compromised!" |
| 60 exit 1 |
| 61 fi |
| 62 |
| 63 # SHA-512 |
| 64 if ! [ -f "$SHA512_FILENAME" ] |
| 65 then |
| 66 echo "SHA-512 hash file $SHA512_FILENAME not found," \ |
| 67 'could not verify archive' |
| 68 exit 1 |
| 69 fi |
| 70 |
| 71 # 128-digit hash, followed by filename |
| 72 SHA512_HASHFILE_REGEX="^[0-9a-f]{128} $FILENAME" |
| 73 if ! grep --extended-regex --line-regex --silent \ |
| 74 "$SHA512_HASHFILE_REGEX" "$SHA512_FILENAME" |
| 75 then |
| 76 echo "SHA-512 hash file $SHA512_FILENAME does not contain hash for" \ |
| 77 "$FILENAME, could not verify archive" |
| 78 echo 'Hash file contents are:' |
| 79 cat "$SHA512_FILENAME" |
| 80 exit 1 |
| 81 fi |
| 82 |
| 83 if ! sha512sum --check "$SHA512_FILENAME" |
| 84 then |
| 85 echo 'SHA-512 hash does not match,' \ |
| 86 "archive file $FILENAME corrupt or compromised!" |
| 87 exit 1 |
| 88 fi |
| 89 } |
| 90 |
| 91 |
| 92 ################################################################################ |
| 93 # Body |
| 94 |
| 95 cd "$INSTALL_DIR" |
| 96 echo "Downloading $SRC_URL" |
| 97 curl --remote-name "$SRC_URL" |
| 98 check_hashes |
| 99 tar xvzf "$FILENAME" |
| 100 # Copy extra files over |
| 101 for FILE in $CHROMIUM_FILES |
| 102 do |
| 103 cp "$FILE" "$OUT_DIR" |
| 104 done |
| 105 |
| 106 cd "$BUILD_DIR" |
| 107 for FILE in $EXTRA_FILES |
| 108 do |
| 109 cp "$FILE" "$OUT_DIR" |
| 110 done |
| 111 |
| 112 cd "$OUT_DIR" |
| 113 for FILE in $REMOVE_FILES |
| 114 do |
| 115 rm -fr "$FILE" |
| 116 done |
| 117 |
| 118 # Replace with new directory |
| 119 cd .. |
| 120 mv "$INSTALL_DIR" "$OLD_DIR" |
| 121 mv "$PACKAGE_DIR" "$INSTALL_DIR" |
| 122 cd "$INSTALL_DIR" |
| 123 rm -fr "$OLD_DIR" |
OLD | NEW |