|  | #!/usr/bin/env python3 | 
|  | # Copyright (c) 2012 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. | 
|  |  | 
|  |  | 
|  | """Presubmit checks for the Skia infrastructure code.""" | 
|  |  | 
|  | USE_PYTHON3 = True | 
|  |  | 
|  | def _RunPresubmitsWithBazelisk(input_api, output_api, extra_arg): | 
|  | """Run presubmit.go via bazelisk. Fail if it returns a non-zero exit code.""" | 
|  | command = ['bazelisk', 'run', '--config=mayberemote', '//cmd/presubmit', '--', extra_arg] | 
|  | command_str = ' '.join(command) | 
|  | results = [] | 
|  |  | 
|  | print('Running "%s" ...' % command_str) | 
|  | try: | 
|  | input_api.subprocess.check_output( | 
|  | command, | 
|  | stderr=input_api.subprocess.STDOUT, | 
|  | encoding='utf-8') | 
|  | except input_api.subprocess.CalledProcessError as e: | 
|  | results += [output_api.PresubmitPromptWarning( | 
|  | 'Command "%s" returned non-zero exit code %d. Output: \n\n%s' % ( | 
|  | command_str, | 
|  | e.returncode, | 
|  | e.output, | 
|  | ) | 
|  | )] | 
|  |  | 
|  | return results | 
|  |  | 
|  |  | 
|  | def CheckChangeOnUpload(input_api, output_api): | 
|  | return _RunPresubmitsWithBazelisk(input_api, output_api, '--upload') | 
|  |  | 
|  |  | 
|  | def CheckChangeOnCommit(input_api, output_api): | 
|  | return _RunPresubmitsWithBazelisk(input_api, output_api, '--commit') |