| Index: PRESUBMIT.py
|
| diff --git a/PRESUBMIT.py b/PRESUBMIT.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4d9f899d532ca7efa2cd4256c04c6e8dec0ea98b
|
| --- /dev/null
|
| +++ b/PRESUBMIT.py
|
| @@ -0,0 +1,66 @@
|
| +# Copyright (c) 2013 The Native Client Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +# Documentation on PRESUBMIT.py can be found at:
|
| +# http://www.chromium.org/developers/how-tos/depottools/presubmit-scripts
|
| +
|
| +EXCLUDE_PROJECT_CHECKS_DIRS = [ '.' ]
|
| +
|
| +import subprocess
|
| +def CheckGitBranch():
|
| + p = subprocess.Popen("git branch -vv", shell=True,
|
| + stdout=subprocess.PIPE)
|
| + output, _ = p.communicate()
|
| +
|
| + lines = output.split('\n')
|
| + for line in lines:
|
| + # output format for checked-out branch should be
|
| + # * branchname hash [TrackedBranchName ...
|
| + toks = line.split()
|
| + if '*' not in toks[0]:
|
| + continue
|
| + if not 'origin/master' in toks[3]:
|
| + warning = 'Warning: your current branch:\n' + line
|
| + warning += '\nis not tracking origin/master. git cl push may silently '
|
| + warning += 'fail to push your change. To fix this, do\n'
|
| + warning += 'git branch -u origin/master'
|
| + return warning
|
| + return None
|
| + print 'Warning: presubmit check could not determine local git branch'
|
| + return None
|
| +
|
| +def _CommonChecks(input_api, output_api):
|
| + """Checks for both upload and commit."""
|
| + results = []
|
| + results.extend(input_api.canned_checks.PanProjectChecks(
|
| + input_api, output_api, project_name='Native Client',
|
| + excluded_paths=tuple(EXCLUDE_PROJECT_CHECKS_DIRS)))
|
| + branch_warning = CheckGitBranch()
|
| + if branch_warning:
|
| + results.append(output_api.PresubmitPromptWarning(branch_warning))
|
| + return results
|
| +
|
| +def CheckChangeOnUpload(input_api, output_api):
|
| + """Verifies all changes in all files.
|
| + Args:
|
| + input_api: the limited set of input modules allowed in presubmit.
|
| + output_api: the limited set of output modules allowed in presubmit.
|
| + """
|
| + report = []
|
| + report.extend(_CommonChecks(input_api, output_api))
|
| + return report
|
| +
|
| +def CheckChangeOnCommit(input_api, output_api):
|
| + """Verifies all changes in all files and verifies that the
|
| + tree is open and can accept a commit.
|
| + Args:
|
| + input_api: the limited set of input modules allowed in presubmit.
|
| + output_api: the limited set of output modules allowed in presubmit.
|
| + """
|
| + report = []
|
| + report.extend(CheckChangeOnUpload(input_api, output_api))
|
| + return report
|
| +
|
| +def GetPreferredTrySlaves(project, change):
|
| + return []
|
|
|