| OLD | NEW |
| 1 #!/bin/bash | 1 #!/bin/bash |
| 2 # | 2 # |
| 3 # Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 # | 6 # |
| 7 | 7 |
| 8 # Clones the dom-distiller repo, compiles and extracts its javascript Then | 8 # Clones the dom-distiller repo, compiles and extracts its javascript Then |
| 9 # copies that js into the Chromium tree. | 9 # copies that js into the Chromium tree. |
| 10 # This script should be run from the src/ directory and requires that ant is | 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 | 11 # installed. It takes an optional parameter for which SHA1 to roll to. If left |
| 12 # unspecified the script rolls to HEAD. | 12 # unspecified the script rolls to HEAD. |
| 13 | 13 |
| 14 ( | 14 ( |
| 15 set -e | 15 set -e |
| 16 | 16 |
| 17 dom_distiller_js_path=third_party/dom_distiller_js | 17 dom_distiller_js_path=third_party/dom_distiller_js |
| 18 dom_distiller_js_package=$dom_distiller_js_path/package | |
| 19 readme_chromium=$dom_distiller_js_path/README.chromium | 18 readme_chromium=$dom_distiller_js_path/README.chromium |
| 20 tmpdir=/tmp/domdistiller-$$ | 19 tmpdir=/tmp/domdistiller-$$ |
| 21 changes=$tmpdir/domdistiller.changes | 20 changes=$tmpdir/domdistiller.changes |
| 22 bugs=$tmpdir/domdistiller.bugs | 21 bugs=$tmpdir/domdistiller.bugs |
| 23 curr_gitsha=$(grep 'Version:' $readme_chromium | awk '{print $2}') | 22 curr_gitsha=$(grep 'Version:' $readme_chromium | awk '{print $2}') |
| 24 | 23 |
| 25 rm -rf $tmpdir | 24 rm -rf $tmpdir |
| 26 mkdir $tmpdir | 25 mkdir $tmpdir |
| 26 pushd $tmpdir |
| 27 | 27 |
| 28 pushd $tmpdir | 28 git clone https://github.com/chromium/dom-distiller.git |
| 29 git clone https://github.com/chromium/dom-distiller/ . | 29 pushd dom-distiller |
| 30 | 30 |
| 31 # The new git SHA1 is HEAD or the first command line parameter. | 31 # The new git SHA1 is HEAD or the first command line parameter. |
| 32 [[ -z "$1" ]] && gitsha_target="HEAD" || gitsha_target="$1" | 32 [[ -z "$1" ]] && gitsha_target="HEAD" || gitsha_target="$1" |
| 33 new_gitsha=$(git rev-parse --short=10 ${gitsha_target}) | 33 new_gitsha=$(git rev-parse --short=10 ${gitsha_target}) |
| 34 git reset --hard ${new_gitsha} | 34 git reset --hard ${new_gitsha} |
| 35 git log --oneline ${curr_gitsha}..${new_gitsha} > $changes | 35 git log --oneline ${curr_gitsha}..${new_gitsha} > $changes |
| 36 | 36 |
| 37 echo -n BUG= > $bugs | 37 echo -n BUG= > $bugs |
| 38 | 38 |
| 39 # This extracts BUG= lines from the log, extracts the numbers part, removes | 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 | 40 # whitespace and deletes empty lines. Then, split on ',', sort, uniquify and |
| 41 # rejoin. Finally, remove the trailing ',' and concat to $bugs. | 41 # rejoin. Finally, remove the trailing ',' and concat to $bugs. |
| 42 git log ${curr_gitsha}..${new_gitsha} \ | 42 git log ${curr_gitsha}..${new_gitsha} \ |
| 43 | grep BUG= \ | 43 | grep BUG= \ |
| 44 | sed -e 's/.*BUG=\(.*\)/\1/' -e 's/\s*//g' -e '/^$/d' \ | 44 | sed -e 's/.*BUG=\(.*\)/\1/' -e 's/\s*//g' -e '/^$/d' \ |
| 45 | tr ',' '\n' \ | 45 | tr ',' '\n' \ |
| 46 | sort \ | 46 | sort \ |
| 47 | uniq \ | 47 | uniq \ |
| 48 | tr '\n' ',' \ | 48 | tr '\n' ',' \ |
| 49 | head --bytes=-1 \ | 49 | head --bytes=-1 \ |
| 50 >> $bugs | 50 >> $bugs |
| 51 | 51 |
| 52 echo >> $bugs # add a newline | 52 echo >> $bugs # add a newline |
| 53 | 53 |
| 54 ant package | 54 ant package |
| 55 popd | 55 popd # dom-distiller |
| 56 | 56 |
| 57 rm -rf $dom_distiller_js_package | 57 git clone https://github.com/chromium/dom-distiller-dist.git $tmpdir/dom-disti
ller-dist |
| 58 mkdir $dom_distiller_js_package | 58 rm -rf $tmpdir/dom-distiller-dist/* |
| 59 cp -rf $tmpdir/out/package/* $dom_distiller_js_package | 59 pushd dom-distiller-dist |
| 60 git add $dom_distiller_js_package | 60 cp -r $tmpdir/dom-distiller/out/package/* . |
| 61 cp $tmpdir/LICENSE $dom_distiller_js_path/ | 61 git add . |
| 62 sed -i "s/Version: [0-9a-f]*/Version: $new_gitsha/" $readme_chromium | 62 if [[ $(git status --short | wc -l) -ne 0 ]]; then |
| 63 git commit -a -m "Package for ${new_gitsha}" |
| 64 git push origin master |
| 65 else |
| 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." |
| 68 fi |
| 69 new_dist_gitsha=$(git rev-parse HEAD) |
| 70 popd # dom-distiller-dist |
| 71 |
| 72 popd # tmpdir |
| 73 curr_dist_gitsha=$(grep -e "/external\/github.com\/chromium\/dom-distiller-dis
t.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." |
| 76 rm -rf $tmpdir |
| 77 exit 1 |
| 78 fi |
| 79 |
| 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 |
| 63 | 83 |
| 64 gen_message () { | 84 gen_message () { |
| 65 echo "Roll DomDistillerJS" | 85 echo "Roll DOM Distiller JavaScript distribution package" |
| 86 echo |
| 87 echo "Diff since last roll:" |
| 88 echo "https://github.com/chromium/dom-distiller/compare/${curr_gitsha}...${n
ew_gitsha}" |
| 66 echo | 89 echo |
| 67 echo "Picked up changes:" | 90 echo "Picked up changes:" |
| 68 cat $changes | 91 cat $changes |
| 69 echo | 92 echo |
| 70 cat $bugs | 93 cat $bugs |
| 71 } | 94 } |
| 72 | 95 |
| 73 message=$tmpdir/message | 96 message=$tmpdir/message |
| 74 gen_message > $message | 97 gen_message > $message |
| 75 | 98 |
| 76 # Run checklicenses.py on the pulled files, but only print the output on | 99 # Run checklicenses.py on the pulled files, but only print the output on |
| 77 # failures. | 100 # failures. |
| 78 tools/checklicenses/checklicenses.py $dom_distiller_js_path > $tmpdir/checklic
enses.out || cat $tmpdir/checklicenses.out | 101 tools/checklicenses/checklicenses.py $dom_distiller_js_path > $tmpdir/checklic
enses.out || cat $tmpdir/checklicenses.out |
| 79 | 102 |
| 80 git commit -a -F $message | 103 git commit -a -F $message |
| 81 | 104 |
| 82 rm -rf $tmpdir | 105 rm -rf $tmpdir |
| 83 ) | 106 ) |
| OLD | NEW |