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 |