OLD | NEW |
1 #!/bin/bash | 1 #!/bin/bash |
2 # Copyright 2014 The Chromium Authors. All rights reserved. | 2 # Copyright 2014 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 # | 5 # |
6 # Download the newest version of Closure Compiler, build it and put into Chrome | 6 # Download the newest version of Closure Compiler, build it and put into Chrome |
7 # source tree. Also update externs/chrome_extensions.js. | 7 # source tree. Also update externs/chrome_extensions.js. |
8 | 8 |
9 readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | 9 readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |
10 readonly TEMP_DIR=$(mktemp -d) | 10 readonly TEMP_DIR=$(mktemp -d) |
11 | 11 |
12 readonly COMPILER_PATH="${SCRIPT_DIR}/compiler/compiler.jar" | 12 readonly COMPILER_PATH="${SCRIPT_DIR}/compiler/compiler.jar" |
13 readonly EXTERNS_PATH="${SCRIPT_DIR}/externs/chrome_extensions.js" | 13 readonly EXTERNS_DIR="${SCRIPT_DIR}/externs" |
14 | 14 |
15 readonly README="${SCRIPT_DIR}/README.chromium" | 15 readonly README="${SCRIPT_DIR}/README.chromium" |
16 | 16 |
17 cleanup() { | 17 cleanup() { |
18 rm -rf "${TEMP_DIR}" | 18 rm -rf "${TEMP_DIR}" |
19 } | 19 } |
20 | 20 |
21 get_externs_sha1() { | 21 get_sha1() { |
22 sha1sum "${EXTERNS_PATH}" | cut -d' ' -f1 | 22 sha1sum "$1" | cut -d" " -f1 |
23 } | 23 } |
24 | 24 |
25 trap cleanup SIGINT SIGHUP SIGTERM | 25 trap cleanup SIGINT SIGHUP SIGTERM |
26 | 26 |
27 old_head=$(egrep -o '^Revision: [0-9a-f]{5,40}$' "${README}" | cut -d' ' -f2) | 27 old_head=$(egrep -o "^Revision: [0-9a-f]{5,40}$" "${README}" | cut -d" " -f2) |
28 old_externs_sha1=$(get_externs_sha1) | 28 old_extensions_sha1=$(get_sha1 "${EXTERNS_DIR}/chrome_extensions.js") |
| 29 old_polymer_sha1=$(get_sha1 "${EXTERNS_DIR}/polymer-1.0.js") |
29 | 30 |
30 cd "${TEMP_DIR}" | 31 cd "${TEMP_DIR}" |
31 | 32 |
32 echo "Cloning Closure Compiler repo" | 33 echo "Cloning Closure Compiler repo" |
33 git clone --depth 1 https://github.com/google/closure-compiler.git | 34 git clone --depth 1 https://github.com/google/closure-compiler.git |
34 | 35 |
35 cd closure-compiler | 36 cd closure-compiler |
36 | 37 |
37 new_head=$(git rev-parse HEAD) | 38 new_head=$(git rev-parse HEAD) |
38 | 39 |
(...skipping 21 matching lines...) Expand all Loading... |
60 cp build/compiler.jar "${COMPILER_PATH}" | 61 cp build/compiler.jar "${COMPILER_PATH}" |
61 | 62 |
62 echo "Re-building runner.jar" | 63 echo "Re-building runner.jar" |
63 "${SCRIPT_DIR}/runner/build_runner_jar.py" | 64 "${SCRIPT_DIR}/runner/build_runner_jar.py" |
64 if [[ "$?" -ne 0 ]]; then | 65 if [[ "$?" -ne 0 ]]; then |
65 echo "Failed to build runner.jar, roll unsuccessful" | 66 echo "Failed to build runner.jar, roll unsuccessful" |
66 cleanup | 67 cleanup |
67 exit 1 | 68 exit 1 |
68 fi | 69 fi |
69 | 70 |
70 (cat <<EOT && cat contrib/externs/chrome_extensions.js) > "${EXTERNS_PATH}" | 71 readonly WARNING="$(cat <<EOT |
71 // SSSSSSSSSSSSSSS TTTTTTTTTTTTTTTTTTTTTTT OOOOOOOOO PPPPPPPPPPPPPPPP
P | 72 // SSSSSSSSSSSSSSS TTTTTTTTTTTTTTTTTTTTTTT OOOOOOOOO PPPPPPPPPPPPPPPP
P |
72 // SS:::::::::::::::ST:::::::::::::::::::::T OO:::::::::OO P:::::::::::::::
:P | 73 // SS:::::::::::::::ST:::::::::::::::::::::T OO:::::::::OO P:::::::::::::::
:P |
73 // S:::::SSSSSS::::::ST:::::::::::::::::::::T OO:::::::::::::OO P::::::PPPPPP:::
::P | 74 // S:::::SSSSSS::::::ST:::::::::::::::::::::T OO:::::::::::::OO P::::::PPPPPP:::
::P |
74 // S:::::S SSSSSSST:::::TT:::::::TT:::::TO:::::::OOO:::::::OPP:::::P P::
:::P | 75 // S:::::S SSSSSSST:::::TT:::::::TT:::::TO:::::::OOO:::::::OPP:::::P P::
:::P |
75 // S:::::S TTTTTT T:::::T TTTTTTO::::::O O::::::O P::::P P::
:::P | 76 // S:::::S TTTTTT T:::::T TTTTTTO::::::O O::::::O P::::P P::
:::P |
76 // S:::::S T:::::T O:::::O O:::::O P::::P P::
:::P | 77 // S:::::S T:::::T O:::::O O:::::O P::::P P::
:::P |
77 // S::::SSSS P::::PPPPPP:::
::P | 78 // S::::SSSS P::::PPPPPP:::
::P |
78 // SS::::::SSSSS This file is generated. To update it, P:::::::::::::
PP | 79 // SS::::::SSSSS This file is generated. To update it, P:::::::::::::
PP |
79 // SSS::::::::SS run roll_closure_compiler. P::::PPPPPPPPP | 80 // SSS::::::::SS run roll_closure_compiler. P::::PPPPPPPPP |
80 // SSSSSS::::S P::::P | 81 // SSSSSS::::S P::::P |
81 // S:::::S T:::::T O:::::O O:::::O P::::P | 82 // S:::::S T:::::T O:::::O O:::::O P::::P |
82 // S:::::S T:::::T O::::::O O::::::O P::::P | 83 // S:::::S T:::::T O::::::O O::::::O P::::P |
83 // SSSSSSS S:::::S TT:::::::TT O:::::::OOO:::::::OPP::::::PP | 84 // SSSSSSS S:::::S TT:::::::TT O:::::::OOO:::::::OPP::::::PP |
84 // S::::::SSSSSS:::::S T:::::::::T OO:::::::::::::OO P::::::::P | 85 // S::::::SSSSSS:::::S T:::::::::T OO:::::::::::::OO P::::::::P |
85 // S:::::::::::::::SS T:::::::::T OO:::::::::OO P::::::::P | 86 // S:::::::::::::::SS T:::::::::T OO:::::::::OO P::::::::P |
86 // SSSSSSSSSSSSSSS TTTTTTTTTTT OOOOOOOOO PPPPPPPPPP | 87 // SSSSSSSSSSSSSSS TTTTTTTTTTT OOOOOOOOO PPPPPPPPPP |
87 EOT | 88 EOT |
| 89 )" |
88 | 90 |
89 new_externs_sha1=$(get_externs_sha1) | 91 (echo "${WARNING}" && cat contrib/externs/chrome_extensions.js) > "${EXTERNS_DIR
}/chrome_extensions.js" |
| 92 (echo "${WARNING}" && cat contrib/externs/polymer-1.0.js) > "${EXTERNS_DIR}/poly
mer-1.0.js" |
90 | 93 |
91 if [[ "${new_externs_sha1}" != "${old_externs_sha1}" ]]; then | 94 new_extensions_sha1=$(get_sha1 "${EXTERNS_DIR}/chrome_extensions.js") |
92 externs_range="chrome_extensions.js: ${old_externs_sha1} -> ${new_externs_sha1
}" | 95 if [[ "${new_extensions_sha1}" != "${old_extensions_sha1}" ]]; then |
| 96 extensions_range="chrome_extensions.js: ${old_extensions_sha1} -> ${new_extens
ions_sha1}" |
| 97 fi |
| 98 |
| 99 new_polymer_sha1=$(get_sha1 "${EXTERNS_DIR}/polymer-1.0.js") |
| 100 if [[ "${new_polymer_sha1}" != "${old_polymer_sha1}" ]]; then |
| 101 polymer_range="polymer-1.0.js: ${old_polymer_sha1} -> ${new_polymer_sha1}" |
93 fi | 102 fi |
94 | 103 |
95 echo | 104 echo |
96 echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" | 105 echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" |
97 echo "@" | 106 echo "@" |
98 echo "@ ROLL RESULTS:" | 107 echo "@ ROLL RESULTS:" |
99 echo "@" | 108 echo "@" |
100 echo "@ closure-compiler.git HEAD:" | 109 echo "@ closure-compiler.git HEAD:" |
101 echo "@ Old: ${old_head}" | 110 echo "@ Old: ${old_head}" |
102 echo "@ New: ${new_head}" | 111 echo "@ New: ${new_head}" |
103 echo "@" | 112 echo "@" |
104 echo "@ Externs SHA1:" | 113 echo "@ externs/chrome_extensions.js SHA1:" |
105 echo "@ Old: ${old_externs_sha1}" | 114 echo "@ Old: ${old_extensions_sha1}" |
106 echo "@ New: ${new_externs_sha1}" | 115 echo "@ New: ${new_extensions_sha1}" |
| 116 echo "@" |
| 117 echo "@ externs/polymer-1.0.js SHA1:" |
| 118 echo "@ Old: ${old_polymer_sha1}" |
| 119 echo "@ New: ${new_polymer_sha1}" |
107 echo "@" | 120 echo "@" |
108 echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" | 121 echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" |
109 echo | 122 echo |
110 | 123 |
111 sed -i "s/^Revision: ${old_head}$/Revision: ${new_head}/" "${README}" | 124 sed -i "s/^Revision: ${old_head}$/Revision: ${new_head}/" "${README}" |
112 | 125 |
113 echo "git commit -a -m 'Roll closure compiler" | 126 echo "git commit -a -m 'Roll closure compiler" |
114 echo | 127 echo |
115 echo "${head_range}" | 128 echo "${head_range}" |
116 if [[ ! -z "${externs_range}" ]]; then echo "${externs_range}"; fi | 129 if [[ ! -z "${extensions_range}" ]]; then echo "${extensions_range}"; fi |
| 130 if [[ ! -z "${polymer_range}" ]]; then echo "${polymer_range}"; fi |
117 echo | 131 echo |
118 echo "TBR=" | 132 echo "TBR=" |
119 echo "BUG='" | 133 echo "BUG='" |
120 echo | 134 echo |
121 echo "git cl upload" | 135 echo "git cl upload" |
122 | 136 |
123 cleanup | 137 cleanup |
OLD | NEW |