Index: git_cl_hooks.py |
diff --git a/git_cl_hooks.py b/git_cl_hooks.py |
deleted file mode 100644 |
index e880a0b30d679775b05538d8dfeeb0bfe74896d6..0000000000000000000000000000000000000000 |
--- a/git_cl_hooks.py |
+++ /dev/null |
@@ -1,90 +0,0 @@ |
-# Copyright (c) 2010 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import os |
-import subprocess |
-import sys |
- |
-import breakpad # pylint: disable=W0611 |
- |
-from git_cl import git_cl |
-from git_cl import upload |
- |
-import presubmit_support |
-import scm |
-import watchlists |
- |
-# Really ugly hack to quiet upload.py |
-upload.verbosity = 0 |
- |
-def Backquote(cmd, cwd=None): |
- """Like running `cmd` in a shell script.""" |
- return subprocess.Popen(cmd, |
- cwd=cwd, |
- stdout=subprocess.PIPE).communicate()[0].strip() |
- |
-def ConvertToInteger(inputval): |
- """Convert a string to integer, but returns either an int or None.""" |
- try: |
- return int(inputval) |
- except (TypeError, ValueError): |
- return None |
- |
- |
-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 = Backquote(['git', 'rev-parse', '--show-cdup']) |
- if not root: |
- root = "." |
- absroot = os.path.abspath(root) |
- if not root: |
- raise Exception("Could not get root directory.") |
- # We use the sha1 of HEAD as a name of this change. |
- name = Backquote(['git', 'rev-parse', 'HEAD']) |
- files = scm.GIT.CaptureStatus([root], upstream_branch) |
- cl = git_cl.Changelist() |
- issue = ConvertToInteger(cl.GetIssue()) |
- patchset = ConvertToInteger(cl.GetPatchset()) |
- if issue: |
- description = cl.GetDescription() |
- else: |
- # If the change was never uploaded, use the log messages of all commits |
- # up to the branch point, as git cl upload will prefill the description |
- # with these log messages. |
- description = Backquote(['git', 'log', '--pretty=format:%s%n%n%b', |
- '%s...' % (upstream_branch)]) |
- self.change = presubmit_support.GitChange(name, description, absroot, files, |
- issue, patchset) |
- |
- |
-def RunHooks(hook_name, upstream_branch): |
- commit = (hook_name == 'pre-cl-dcommit') |
- |
- # Create our options based on the command-line args and the current checkout. |
- options = ChangeOptions(commit=commit, upstream_branch=upstream_branch) |
- |
- # Apply watchlists on upload. |
- if not commit: |
- watchlist = watchlists.Watchlists(options.change.RepositoryRoot()) |
- files = [f.LocalPath() for f in options.change.AffectedFiles()] |
- watchers = watchlist.GetWatchersForPaths(files) |
- Backquote(['git', 'config', '--replace-all', |
- 'rietveld.extracc', ','.join(watchers)]) |
- |
- # 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) |