| # 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. |
| import os |
| _EXCLUDED_PATHS = [] |
| |
| def _CheckIfAboutTracingIsOutOfdate(input_api, output_api): |
| import build.generate_about_tracing_contents as generator1 |
| import build.generate_deps_js_contents as generator2 |
| import build.parse_deps |
| |
| try: |
| out_of_date = (generator1.is_out_of_date() or |
| generator2.is_out_of_date()) |
| except build.parse_deps.DepsException, ex: |
| return [output_api.PresubmitError(str(ex))] |
| |
| if out_of_date: |
| return [output_api.PresubmitError( |
| 'This change affects module depenencies. You need to run' |
| ' ./build/calcdeps.py')] |
| return [] |
| |
| def _CommonChecks(input_api, output_api): |
| results = [] |
| results.extend(input_api.canned_checks.PanProjectChecks( |
| input_api, output_api, excluded_paths=_EXCLUDED_PATHS)) |
| results.extend(_CheckIfAboutTracingIsOutOfdate(input_api, output_api)) |
| |
| from web_dev_style import css_checker, js_checker |
| |
| src_dir = os.path.join(input_api.change.RepositoryRoot(), "src") |
| FILES_TO_NOT_LINT = [ |
| input_api.os_path.join(src_dir, "about_tracing.js"), |
| input_api.os_path.join(src_dir, "deps.js"), |
| ] |
| |
| def IsResource(maybe_resource): |
| f = maybe_resource.AbsoluteLocalPath() |
| print f |
| if not f.endswith(('.css', '.html', '.js')): |
| return False |
| for ignored in FILES_TO_NOT_LINT: |
| if input_api.os_path.samefile(f, ignored): |
| return False |
| return True |
| |
| |
| results.extend(css_checker.CSSChecker(input_api, output_api, |
| file_filter=IsResource).RunChecks()) |
| results.extend(js_checker.JSChecker(input_api, output_api, |
| file_filter=IsResource).RunChecks()) |
| |
| return results |
| |
| def GetPathsToPrepend(input_api): |
| web_dev_style_path = input_api.os_path.join( |
| input_api.change.RepositoryRoot(), |
| "third_party", |
| "web_dev_style") |
| return [input_api.PresubmitLocalPath(), web_dev_style_path] |
| |
| def RunWithPrependedPath(prepended_path, fn, *args): |
| import sys |
| old_path = sys.path |
| |
| try: |
| sys.path = prepended_path + old_path |
| return fn(*args) |
| finally: |
| sys.path = old_path |
| |
| def CheckChangeOnUpload(input_api, output_api): |
| def go(): |
| results = [] |
| results.extend(_CommonChecks(input_api, output_api)) |
| return results |
| return RunWithPrependedPath(GetPathsToPrepend(input_api), go) |
| |
| def CheckChangeOnCommit(input_api, output_api): |
| def go(): |
| results = [] |
| results.extend(_CommonChecks(input_api, output_api)) |
| return results |
| return RunWithPrependedPath(GetPathsToPrepend(input_api), go) |