Extend cherry-pick script to take reviewer and send mail

Change-Id: I26110226348af87598e5c9b507a0bdab3ea12f36
diff --git a/tools/cherry-pick.py b/tools/cherry-pick.py
index 8e92b6a..d500e09 100755
--- a/tools/cherry-pick.py
+++ b/tools/cherry-pick.py
@@ -39,6 +39,16 @@
                         default=False,
                         action='store_true',
                         help='Answer "yes" to all questions')
+    parser.add_argument('--reviewer',
+                        metavar=('<reviewer(s)>'),
+                        default=[],
+                        action='append',
+                        help='Rewiever(s) for the cherry-pick(s)')
+    parser.add_argument('--send-mail',
+                        '--send_mail',
+                        default=False,
+                        action='store_true',
+                        help='Send Gerrit review request right away')
     return parser.parse_args()
 
 
@@ -118,6 +128,12 @@
                 pass
 
 
+def reviewer_arg(reviewer):
+    if reviewer.find('@') == -1:
+        reviewer = reviewer + "@google.com"
+    return '--reviewer=' + reviewer
+
+
 def confirm_and_upload(branch, args, bugs):
     if not args.yes:
       question = ('Ready to continue (cwd %s, will not upload to Gerrit)' %
@@ -155,11 +171,17 @@
             if bug:
                 bugs.add(bug.replace('b/', '').strip())
 
+    cmd = ['git', 'cl', 'upload', '--bypass-hooks']
+    if args.yes:
+        cmd.append('-f')
+    if args.reviewer:
+        cmd.extend(map(reviewer_arg, args.reviewer))
+        if args.send_mail:
+            cmd.append('--send-mail')
     if not args.no_upload:
-        cmd = ['git', 'cl', 'upload', '--bypass-hooks']
-        if (args.yes):
-            cmd.append('-f')
         subprocess.run(cmd)
+    else:
+        print('Not uploading, upload command was "%s"' % cmd)
 
 
 def main():