Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(105)

Unified Diff: PRESUBMIT.py

Issue 2761653003: Add presubmit check that runs dartfmt (Closed)
Patch Set: Add presubmit check that runs dartfmt Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: PRESUBMIT.py
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index f850b03948c9b2e1a03a9960ef8f54a3bc2d9cb2..6fc5cb32180c445614acb7aa5d704cab6b1bd907 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -8,7 +8,10 @@ See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
for more details about the presubmit API built into gcl.
"""
-def CheckChangeOnCommit(input_api, output_api):
+import imp
+import os
+
+def _CheckBuildStatus(input_api, output_api):
results = []
status_check = input_api.canned_checks.CheckTreeIsOpen(
input_api,
@@ -16,3 +19,27 @@ def CheckChangeOnCommit(input_api, output_api):
json_url='http://dart-status.appspot.com/current?format=json')
results.extend(status_check)
return results
+
+def _CheckDartFormat(input_api, output_api):
+ utils = imp.load_source('utils',
+ os.path.join(input_api.change.RepositoryRoot(), 'tools', 'utils.py'))
+
+ results = []
+ prebuilt_dartfmt = os.path.join(utils.CheckedInSdkPath(), 'bin', 'dartfmt')
zra 2017/03/20 19:26:06 The presubmit check should degrade gracefully if t
Jacob 2017/03/20 19:59:07 Done. I now print a warning if the file doesn't ex
+
+ for git_file in input_api.AffectedTextFiles():
+ filename = git_file.AbsoluteLocalPath()
+ if filename.endswith('.dart'):
+ cmd = '%s --set-exit-if-changed -n %s ' % (prebuilt_dartfmt, filename)
+ if os.system(cmd):
zra 2017/03/20 19:26:06 Could you rather use the presubmit API to run comm
Jacob 2017/03/20 19:59:07 Done. Thanks for pointing out the existing presubm
+ results += [output_api.PresubmitError(
+ 'Must run dartfmt on %s' % filename)]
+
+ return results
+
+def CheckChangeOnCommit(input_api, output_api):
+ return (_CheckBuildStatus(input_api, output_api) +
+ _CheckDartFormat(input_api, output_api))
+
+def CheckChangeOnUpload(input_api, output_api):
+ return _CheckDartFormat(input_api, output_api)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698