blob: b87797c1b34d8ad4b53c4527e52c224c75483ec8 [file] [log] [blame]
# Copyright 2014 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 script for ChromeVox."""
def CheckChangeOnUpload(input_api, output_api):
paths = input_api.AbsoluteLocalPaths()
def ShouldCheckFile(path):
return path.endswith('.js') or path.endswith('.py')
def ScriptFilter(path):
return (path.endswith('check_chromevox.py') or
path.endswith('jscompilerwrapper.py') or
path.endswith('jsbundler.py'))
# Only care about changes to JS files or the scripts that check them.
paths = [p for p in paths if ShouldCheckFile(p)]
if not paths:
return []
# If changing what the presubmit script uses, run the check on all
# scripts. Otherwise, let CheckChromeVox figure out what scripts to
# compile, if any, based on the changed paths.
if any((ScriptFilter(p) for p in paths)):
paths = None
import sys
if not sys.platform.startswith('linux'):
return []
sys.path.insert(0, input_api.os_path.join(
input_api.PresubmitLocalPath(), 'tools'))
try:
from check_chromevox import CheckChromeVox
finally:
sys.path.pop(0)
success, output = CheckChromeVox(paths)
if not success:
return [output_api.PresubmitError(
'ChromeVox closure compilation failed',
long_text=output)]
return []