aboutsummaryrefslogtreecommitdiffhomepage
path: root/PRESUBMIT.py
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2016-08-03 14:18:22 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-08-03 14:18:23 -0700
commit4db3b7969f62f5ddbf32bd812b9510af018ece89 (patch)
tree4b5b2a2a350eb835c2a761982418e5fc1d3e3f51 /PRESUBMIT.py
parent18e0cbc52a7a145cd6d915759ef9d611808960aa (diff)
Require gn format in presubmit
Diffstat (limited to 'PRESUBMIT.py')
-rw-r--r--PRESUBMIT.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index e0e01fb30f..95fea4f8db 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -185,6 +185,23 @@ def _RecipeSimulationTest(input_api, output_api):
'`%s` failed:\n%s' % (' '.join(cmd), e.output)))
return results
+def _CheckGNFormatted(input_api, output_api):
+ """Make sure any .gn files we're changing have been formatted."""
+ results = []
+ for f in input_api.AffectedFiles():
+ if not f.LocalPath().endswith('.gn'):
+ continue
+
+ cmd = ['gn', 'format', '--dry-run', f.LocalPath()]
+ try:
+ subprocess.check_output(cmd)
+ except subprocess.CalledProcessError:
+ fix = cmd[:]
+ fix[2] = '--in-place'
+ results.append(output_api.PresubmitError(
+ '`%s` failed, try\n\t%s' % (' '.join(cmd), ' '.join(fix))))
+ return results
+
def _CommonChecks(input_api, output_api):
"""Presubmit checks common to upload and commit."""
@@ -222,6 +239,7 @@ def CheckChangeOnUpload(input_api, output_api):
# Run on upload, not commit, since the presubmit bot apparently doesn't have
# coverage installed.
results.extend(_RecipeSimulationTest(input_api, output_api))
+ results.extend(_CheckGNFormatted(input_api, output_api))
return results