blob: 9af048626fe53eea18876d828d9944c54c681539 [file] [log] [blame]
# 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.
"""Top-level presubmit script for Chromium.
See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
for more details about the presubmit API built into depot_tools.
"""
PRESUBMIT_VERSION = '2.0.0'
# This line is 'magic' in that git-cl looks for it to decide whether to
# use Python3 instead of Python2 when running the code in this file.
USE_PYTHON3 = True
LOB_EXTENSIONS = ['ai','bin','bmp','bz2','crt','crx','dia','msi','gif',
'graffle','ico','jpg','jpeg','md','mp4','ninja','pdf',
'plist','png','PNG','svg','swf','tar.gz','tiff','_trace',
'webp','xcf','xlsx','zip']
import os
def CheckPatchFormatted(input_api, output_api):
return input_api.canned_checks.CheckPatchFormatted(input_api, output_api)
def CheckChangeHasDescription(input_api, output_api):
return input_api.canned_checks.CheckChangeHasDescription(
input_api, output_api)
def CheckForLobs(input_api, output_api):
output_status = []
for file in input_api.change.AffectedFiles():
# The tar.gz for example prevents using a hashmap to look up the extension
for ext in LOB_EXTENSIONS:
if str(file).endswith(ext):
error_msg = ('The file \'{file_name}\' is a binary that has not been '
'uploaded to GCE. Please run:\n\tupload-lob.py '
'"{file_name}"\nand commit {file_name}.sha1 instead'
.format(file_name = file.LocalPath()))
error = output_api.PresubmitError(error_msg)
output_status.append(error)
break
return output_status