3 # Copyright 2014 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
8 # Clones the dom-distiller repo, compiles and extracts its javascript Then
9 # copies that js into the Chromium tree.
10 # This script should be run from the src/ directory and requires that ant is
11 # installed. It takes an optional parameter for which SHA1 to roll to. If left
12 # unspecified the script rolls to HEAD.
17 dom_distiller_js_path
=third_party
/dom_distiller_js
18 readme_chromium
=$dom_distiller_js_path/README.chromium
19 tmpdir
=/tmp
/domdistiller-$$
20 changes
=$tmpdir/domdistiller.changes
21 bugs
=$tmpdir/domdistiller.bugs
22 curr_gitsha
=$
(grep 'Version:' $readme_chromium |
awk '{print $2}')
28 git clone https
://github.com
/chromium
/dom-distiller.git
31 # The new git SHA1 is HEAD or the first command line parameter.
32 [[ -z "$1" ]] && gitsha_target
="HEAD" || gitsha_target
="$1"
33 new_gitsha
=$
(git rev-parse
--short=10 ${gitsha_target})
34 git
reset --hard ${new_gitsha}
35 git log
--oneline ${curr_gitsha}..
${new_gitsha} > $changes
39 # This extracts BUG= lines from the log, extracts the numbers part, removes
40 # whitespace and deletes empty lines. Then, split on ',', sort, uniquify and
41 # rejoin. Finally, remove the trailing ',' and concat to $bugs.
42 git log
${curr_gitsha}..
${new_gitsha} \
44 |
sed -e 's/.*BUG=\(.*\)/\1/' -e 's/\s*//g' -e '/^$/d' \
52 echo >> $bugs # add a newline
57 git clone https
://github.com
/chromium
/dom-distiller-dist.git
$tmpdir/dom-distiller-dist
58 rm -rf $tmpdir/dom-distiller-dist
/*
59 pushd dom-distiller-dist
60 cp -r $tmpdir/dom-distiller
/out
/package
/* .
62 if [[ $
(git status
--short |
wc -l) -ne 0 ]]; then
63 git commit
-a -m "Package for ${new_gitsha}"
64 git push origin master
66 # No changes to external repo, but need to check if DEPS refers to same SHA1.
67 echo "WARNING: There were no changes to the distribution package."
69 new_dist_gitsha
=$
(git rev-parse HEAD
)
70 popd # dom-distiller-dist
73 curr_dist_gitsha
=$
(grep -e "/external\/github.com\/chromium\/dom-distiller-dist.git" DEPS |
sed -e "s/.*'\([A-Za-z0-9]\{40\}\)'.*/\1/g")
74 if [[ "${new_dist_gitsha}" == "${curr_dist_gitsha}" ]]; then
75 echo "The roll does not include any changes to the dist package. Exiting."
80 cp $tmpdir/dom-distiller
/LICENSE
$dom_distiller_js_path/
81 sed -i "s/Version: [0-9a-f]*/Version: ${new_gitsha}/" $readme_chromium
82 sed -i -e "s/\('\/external\/github.com\/chromium\/dom-distiller-dist.git' + '@' + '\)\([0-9a-f]\+\)'/\1${new_dist_gitsha}'/" DEPS
85 echo "Roll DOM Distiller JavaScript distribution package"
87 echo "Diff since last roll:"
88 echo "https://github.com/chromium/dom-distiller/compare/${curr_gitsha}...${new_gitsha}"
90 echo "Picked up changes:"
96 message
=$tmpdir/message
97 gen_message
> $message
99 # Run checklicenses.py on the pulled files, but only print the output on
101 tools
/checklicenses
/checklicenses.py
$dom_distiller_js_path > $tmpdir/checklicenses.out ||
cat $tmpdir/checklicenses.out
103 git commit
-a -F $message