1645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez#!/bin/bash 2645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez# Download and extract MarkupSafe 3645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez# Homepage: 4645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez# https://github.com/mitsuhiko/markupsafe 5645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez# Download page: 6645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez# https://pypi.python.org/pypi/MarkupSafe 7645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezPACKAGE='MarkupSafe' 8645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezVERSION='0.18' 9645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezPACKAGE_DIR='markupsafe' 10645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 11645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezCHROMIUM_FILES="README.chromium OWNERS get_markupsafe.sh" 12645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezEXTRA_FILES='LICENSE AUTHORS' 13645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezREMOVE_FILES='tests.py' 14645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 15645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezSRC_URL='https://pypi.python.org/packages/source/' 16645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezSRC_URL+="${PACKAGE:0:1}/$PACKAGE/$PACKAGE-$VERSION.tar.gz" 17645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezFILENAME="$(basename $SRC_URL)" 18645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezMD5_FILENAME="$FILENAME.md5" 19645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezSHA512_FILENAME="$FILENAME.sha512" 20645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezCHROMIUM_FILES+=" $MD5_FILENAME $SHA512_FILENAME" 21645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 22645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezBUILD_DIR="$PACKAGE-$VERSION" 23645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezTHIRD_PARTY="$(dirname $(realpath $(dirname "${BASH_SOURCE[0]}")))" 24645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezINSTALL_DIR="$THIRD_PARTY/$PACKAGE_DIR" 25645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezOUT_DIR="$INSTALL_DIR/$BUILD_DIR/$PACKAGE_DIR" 26645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector ChavezOLD_DIR="$THIRD_PARTY/$PACKAGE_DIR.old" 27645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 28645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezfunction check_hashes { 29645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez # Hashes generated via: 30645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez # FILENAME=MarkupSafe-0.18.tar.gz 31645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez # md5sum "$FILENAME" > "$FILENAME.md5" 32645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez # sha512sum "$FILENAME" > "$FILENAME.sha512" 33645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez # unset FILENAME 34645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 35645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez # MD5 36645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez if ! [ -f "$MD5_FILENAME" ] 37645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez then 38645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez echo "MD5 hash file $MD5_FILENAME not found, could not verify archive" 39645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez exit 1 40645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez fi 41645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 42645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez # 32-digit hash, followed by filename 43645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez MD5_HASHFILE_REGEX="^[0-9a-f]{32} $FILENAME" 44645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez if ! grep --extended-regex --line-regex --silent \ 45645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez "$MD5_HASHFILE_REGEX" "$MD5_FILENAME" 46645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez then 47645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez echo "MD5 hash file $MD5_FILENAME does not contain hash for $FILENAME," \ 48645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 'could not verify archive' 49645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez echo 'Hash file contents are:' 50645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez cat "$MD5_FILENAME" 51645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez exit 1 52645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez fi 53645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 54645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez if ! md5sum --check "$MD5_FILENAME" 55645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez then 56645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez echo 'MD5 hash does not match,' \ 57645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez "archive file $FILENAME corrupt or compromised!" 58645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez exit 1 59645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez fi 60645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 61645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez # SHA-512 62645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez if ! [ -f "$SHA512_FILENAME" ] 63645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez then 64645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez echo "SHA-512 hash file $SHA512_FILENAME not found," \ 65645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 'could not verify archive' 66645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez exit 1 67645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez fi 68645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 69645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez # 128-digit hash, followed by filename 70645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez SHA512_HASHFILE_REGEX="^[0-9a-f]{128} $FILENAME" 71645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez if ! grep --extended-regex --line-regex --silent \ 72645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez "$SHA512_HASHFILE_REGEX" "$SHA512_FILENAME" 73645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez then 74645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez echo "SHA-512 hash file $SHA512_FILENAME does not contain hash for" \ 75645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez "$FILENAME, could not verify archive" 76645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez echo 'Hash file contents are:' 77645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez cat "$SHA512_FILENAME" 78645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez exit 1 79645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez fi 80645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 81645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez if ! sha512sum --check "$SHA512_FILENAME" 82645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez then 83645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez echo 'SHA-512 hash does not match,' \ 84645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez "archive file $FILENAME corrupt or compromised!" 85645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez exit 1 86645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez fi 87645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez} 88645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 89645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 90645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez################################################################################ 91645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez# Body 92645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 93645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezcd "$INSTALL_DIR" 94645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezecho "Downloading $SRC_URL" 95645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezcurl --remote-name "$SRC_URL" 96645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezcheck_hashes 97645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chaveztar xvzf "$FILENAME" 98645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez# Copy extra files over 99645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezfor FILE in $CHROMIUM_FILES 100645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezdo 101645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez cp "$FILE" "$OUT_DIR" 102645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezdone 103645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 104645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezcd "$BUILD_DIR" 105645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezfor FILE in $EXTRA_FILES 106645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezdo 107645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez cp "$FILE" "$OUT_DIR" 108645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezdone 109645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 110645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezcd "$OUT_DIR" 111645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezfor FILE in $REMOVE_FILES 112645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezdo 113645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez rm -fr "$FILE" 114645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezdone 115645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez 116645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavez# Replace with new directory 117645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezcd .. 118645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezmv "$INSTALL_DIR" "$OLD_DIR" 119645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezmv "$PACKAGE_DIR" "$INSTALL_DIR" 120645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezcd "$INSTALL_DIR" 121645501c2ab19a559ce82a1d5a29ced159a4c30fbLuis Hector Chavezrm -fr "$OLD_DIR" 122