Change gcl presubmit to only run commit hooks by default.

Upload hook are only run with the --upload flag.

Most of the time the same hook is run in both case so gcl presubmit is simply 2x
slower than it could be otherwise.

TEST=none
BUG=none

Review URL: http://codereview.chromium.org/4277003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@64779 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gcl.py b/gcl.py
index 058837a..39f3bec 100755
--- a/gcl.py
+++ b/gcl.py
@@ -9,6 +9,7 @@
 """
 
 import getpass
+import optparse
 import os
 import random
 import re
@@ -865,22 +866,27 @@
   return 0
 
 
-@need_change
-def CMDpresubmit(change_info):
+@need_change_and_args
+@attrs(usage='[--upload]')
+def CMDpresubmit(change_info, args):
   """Runs presubmit checks on the change.
 
   The actual presubmit code is implemented in presubmit_support.py and looks
   for PRESUBMIT.py files."""
   if not change_info.GetFiles():
-    print "Nothing to presubmit check, changelist is empty."
+    print('Nothing to presubmit check, changelist is empty.')
     return 0
-
-  print "*** Presubmit checks for UPLOAD would report: ***"
-  result = DoPresubmitChecks(change_info, False, False)
-
-  print "\n*** Presubmit checks for COMMIT would report: ***"
-  result &= DoPresubmitChecks(change_info, True, False)
-  return not result
+  parser = optparse.OptionParser()
+  parser.add_option('--upload', action='store_true')
+  options, args = parser.parse_args(args)
+  if args:
+    parser.error('Unrecognized args: %s' % args)
+  if options.upload:
+    print('*** Presubmit checks for UPLOAD would report: ***')
+    return not DoPresubmitChecks(change_info, False, False)
+  else:
+    print('*** Presubmit checks for COMMIT would report: ***')
+    return not DoPresubmitChecks(change_info, True, False)
 
 
 def TryChange(change_info, args, swallow_exception):