Index: git-cl-upload-hook |
=================================================================== |
--- git-cl-upload-hook (revision 28125) |
+++ git-cl-upload-hook (working copy) |
@@ -4,8 +4,6 @@ |
# found in the LICENSE file. |
import os |
-import re |
-import subprocess |
import sys |
# Find depot_tools in PATH, append it to sys.path so we can import. |
@@ -16,60 +14,12 @@ |
sys.path.append(path) |
break |
-import gclient_scm |
-import presubmit_support |
+import git_cl_hooks |
-def Backquote(cmd, cwd=None): |
- """Like running `cmd` in a shell script.""" |
- return subprocess.Popen(cmd, |
- cwd=cwd, |
- stdout=subprocess.PIPE).communicate()[0].strip() |
- |
- |
-class ChangeOptions: |
- def __init__(self, commit=None, upstream_branch=None): |
- self.commit = commit |
- self.verbose = None |
- self.default_presubmit = None |
- self.may_prompt = None |
- |
- root = os.path.abspath(Backquote(['git', 'rev-parse', '--show-cdup'])) |
- if not root: |
- raise Exception("Could not get root directory.") |
- log = Backquote(['git', 'show', '--name-only', |
- '--pretty=format:%H%n%s%n%n%b']) |
- m = re.match(r'^(\w+)\n(.*)$', log, re.MULTILINE|re.DOTALL) |
- if not m: |
- raise Exception("Could not parse log message: %s" % log) |
- name = m.group(1) |
- description = m.group(2) |
- files = gclient_scm.CaptureGitStatus([root], upstream_branch) |
- issue = Backquote(['git', 'cl', 'status', '--field=id']) |
- patchset = None |
- self.change = presubmit_support.GitChange(name, description, root, files, |
- issue, patchset) |
- |
- |
# Ensure we were called with the necessary number of arguments. |
program_name = os.path.basename(sys.argv[0]) |
-if len(sys.argv) < 2: |
+if len(sys.argv) != 2: |
raise Exception("usage: %s [upstream branch]" % program_name) |
-# Get arguments from how we were called. |
-commit = (program_name == 'pre-cl-dcommit') |
-upstream_branch = sys.argv[1] |
- |
-# Create our options based on the command-line args and the current checkout. |
-options = ChangeOptions(commit=commit, upstream_branch=upstream_branch) |
- |
-# Run the presubmit checks. |
-if presubmit_support.DoPresubmitChecks(options.change, |
- options.commit, |
- options.verbose, |
- sys.stdout, |
- sys.stdin, |
- options.default_presubmit, |
- options.may_prompt): |
- sys.exit(0) |
-else: |
- sys.exit(1) |
+# Run the hooks library with our arguments. |
+exec git_cl_hooks.RunHooks(hook_name=program_name, upstream_branch=sys.argv[1]) |