mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
Add canned presubmit check for GN formatting
Requires https://codereview.chromium.org/779883002/ to be landed/rolled before it's useful. R=dpranke@chromium.org BUG=348474 Review URL: https://codereview.chromium.org/779513005 git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293269 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
2
gn.py
2
gn.py
@@ -30,7 +30,7 @@ def main(args):
|
||||
print >> sys.stderr, 'gn.py: Could not find gn executable at: %s' % gn_path
|
||||
return 2
|
||||
else:
|
||||
return subprocess.call([gn_path] + sys.argv[1:])
|
||||
return subprocess.call([gn_path] + args[1:])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -1113,3 +1113,22 @@ def CheckPatchFormatted(input_api, output_api):
|
||||
# As this is just a warning, ignore all other errors if the user
|
||||
# happens to have a broken clang-format, doesn't use git, etc etc.
|
||||
return []
|
||||
|
||||
|
||||
def CheckGNFormatted(input_api, output_api):
|
||||
import gn
|
||||
affected_files = input_api.AffectedFiles(
|
||||
include_deletes=False,
|
||||
file_filter=lambda x: x.LocalPath().endswith('.gn') or
|
||||
x.LocalPath().endswith('.gni'))
|
||||
warnings = []
|
||||
for f in affected_files:
|
||||
cmd = ['gn', 'format', '--dry-run', f.AbsoluteLocalPath()]
|
||||
rc = gn.main(cmd)
|
||||
if rc == 2:
|
||||
warnings.append(output_api.PresubmitPromptWarning(
|
||||
'%s requires formatting. Please run `gn format --in-place %s`.' % (
|
||||
f.AbsoluteLocalPath(), f.LocalPath())))
|
||||
# It's just a warning, so ignore other types of failures assuming they'll be
|
||||
# caught elsewhere.
|
||||
return warnings
|
||||
|
||||
@@ -1878,6 +1878,7 @@ class CannedChecksUnittest(PresubmitTestsBase):
|
||||
'CheckLicense',
|
||||
'CheckOwners',
|
||||
'CheckPatchFormatted',
|
||||
'CheckGNFormatted',
|
||||
'CheckRietveldTryJobExecution',
|
||||
'CheckSingletonInHeaders',
|
||||
'CheckSvnModifiedDirectories',
|
||||
|
||||
Reference in New Issue
Block a user