Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 #!/usr/bin/env bash | |
| 2 # A helpful script to land contributions from external developers. | |
| 3 # The script requires one parameter, which is the issue number to land on behalf | |
| 4 # of the author. | |
| 5 if [[ -z "$1" ]]; then | |
| 6 echo "First argument must be the issue number." | |
| 7 echo "Example: $(basename $0) 123456" | |
| 8 exit 1 | |
| 9 fi | |
| 10 ( | |
| 11 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.
| |
| 12 # Need to strip colors first from the result of |git cl comments|. | |
| 13 git cl comments | \ | |
| 14 sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | \ | |
| 15 grep "@" | \ | |
| 16 head -n 1 | \ | |
| 17 awk '{print $3;}' | |
| 18 } | |
| 19 | |
| 20 set -e | |
| 21 issue_number=$1 | |
| 22 # Ensure origin/master is up to date, and checkout a branch which tracks it. | |
| 23 git remote update | |
| 24 git checkout -tb land-issue-${issue_number} origin/master | |
| 25 | |
| 26 # Setup the branch correctly with the last patch from the review. | |
| 27 git cl patch ${issue_number} | |
| 28 git cl issue ${issue_number} | |
| 29 | |
| 30 # Print the CL description to help identify if this is the correct CL. | |
| 31 echo "The following is the description on that issue:" | |
| 32 echo "######" | |
| 33 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
| |
| 34 grep -v "^#" | \ | |
| 35 sed -r "s/Loaded authentication cookies from.*$//g" | |
| 36 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
| |
| 37 | |
| 38 # Get author e-mail by inspecting the first comment, and ask user to verify. | |
| 39 author_email=$(get_author_from_first_comment) | |
| 40 echo "Author e-mail: Enter to use, or enter correct e-mail [${author_email}]:" | |
| 41 read email_override | |
| 42 if [[ ! -z "${email_override}" ]]; then | |
| 43 author_email="${email_override}" | |
| 44 fi | |
| 45 | |
| 46 # Get author name from the username in the e-mail, and ask user to verify. | |
| 47 author_name=$(echo ${author_email} | awk '{split($0,a,"@"); print a[1]};') | |
| 48 echo "Author name: Enter to use, or enter correct name. [${author_name}]:" | |
| 49 read name_override | |
| 50 if [[ ! -z "${name_override}" ]]; then | |
| 51 author_name="${name_override}" | |
| 52 fi | |
| 53 | |
| 54 # Land the current branch. | |
| 55 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
| |
| 56 ) | |
| OLD | NEW |