Chromium Code Reviews| Index: land-external-contributor-cl.sh |
| diff --git a/land-external-contributor-cl.sh b/land-external-contributor-cl.sh |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..09dbb5c00d872cee1ec14443e7c2a5b0eb7d4d26 |
| --- /dev/null |
| +++ b/land-external-contributor-cl.sh |
| @@ -0,0 +1,56 @@ |
| +#!/usr/bin/env bash |
| +# A helpful script to land contributions from external developers. |
| +# The script requires one parameter, which is the issue number to land on behalf |
| +# of the author. |
| +if [[ -z "$1" ]]; then |
| + echo "First argument must be the issue number." |
| + echo "Example: $(basename $0) 123456" |
| + exit 1 |
| +fi |
| +( |
| + get_author_from_first_comment() { |
|
cjhopman
2015/04/06 18:28:52
We should probably have git cl expose the actual a
wychen
2015/04/07 03:15:40
I have a CL here under review.
https://codereview.
|
| + # Need to strip colors first from the result of |git cl comments|. |
| + git cl comments | \ |
| + sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | \ |
| + grep "@" | \ |
| + head -n 1 | \ |
| + awk '{print $3;}' |
| + } |
| + |
| + set -e |
| + issue_number=$1 |
| + # Ensure origin/master is up to date, and checkout a branch which tracks it. |
| + git remote update |
| + git checkout -tb land-issue-${issue_number} origin/master |
| + |
| + # Setup the branch correctly with the last patch from the review. |
| + git cl patch ${issue_number} |
| + git cl issue ${issue_number} |
| + |
| + # Print the CL description to help identify if this is the correct CL. |
| + echo "The following is the description on that issue:" |
| + echo "######" |
| + GIT_EDITOR=cat git cl description | \ |
|
nyquist
2015/04/02 19:15:30
This sadly edits the CL description; so it should
wychen
2015/04/02 22:36:06
I'll fix this in git_cl.py soon.
https://coderevie
nyquist
2015/04/03 01:23:31
That's fantastic! Thanks!
I guess this is ready f
wychen
2015/04/07 03:15:39
The fix on git_cl.py was committed, so I guess thi
|
| + grep -v "^#" | \ |
| + sed -r "s/Loaded authentication cookies from.*$//g" |
| + echo "######" |
|
cjhopman
2015/04/06 18:28:52
This should probably have some sort of confirm dia
wychen
2015/04/07 03:15:39
If Ctrl-c counts as a way to reject, we already ha
|
| + |
| + # Get author e-mail by inspecting the first comment, and ask user to verify. |
| + author_email=$(get_author_from_first_comment) |
| + echo "Author e-mail: Enter to use, or enter correct e-mail [${author_email}]:" |
| + read email_override |
| + if [[ ! -z "${email_override}" ]]; then |
| + author_email="${email_override}" |
| + fi |
| + |
| + # Get author name from the username in the e-mail, and ask user to verify. |
| + author_name=$(echo ${author_email} | awk '{split($0,a,"@"); print a[1]};') |
| + echo "Author name: Enter to use, or enter correct name. [${author_name}]:" |
| + read name_override |
| + if [[ ! -z "${name_override}" ]]; then |
| + author_name="${name_override}" |
| + fi |
| + |
| + # Land the current branch. |
| + git cl land -c "${author_name} <${author_email}>" |
|
cjhopman
2015/04/06 18:28:52
does this run presubmits?
wychen
2015/04/07 03:15:40
Adding "ant clean && ant test" before this line?
cjhopman
2015/04/07 16:59:17
Tests aren't the same as presubmits. I believe tha
nyquist
2015/04/14 18:44:35
We are intentionally not running tests here. We pr
|
| +) |