Home | History | Annotate | Download | only in mojo
      1 # Copyright 2014 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 """Presubmit script for mojo
      6 
      7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
      8 for more details about the presubmit API built into depot_tools.
      9 """
     10 
     11 import os.path
     12 
     13 def CheckChangeOnUpload(input_api, output_api):
     14   # Additional python module paths (we're in src/mojo/); not everyone needs
     15   # them, but it's easiest to add them to everyone's path.
     16   # For ply and jinja2:
     17   third_party_path = os.path.join(
     18       input_api.PresubmitLocalPath(), "..", "third_party")
     19   # For the bindings generator:
     20   mojo_public_bindings_pylib_path = os.path.join(
     21       input_api.PresubmitLocalPath(), "public", "tools", "bindings", "pylib")
     22   # For the python bindings:
     23   mojo_python_bindings_path = os.path.join(
     24       input_api.PresubmitLocalPath(), "public", "python")
     25   # TODO(vtl): Don't lint these files until the (many) problems are fixed
     26   # (possibly by deleting/rewriting some files).
     27   temporary_black_list = input_api.DEFAULT_BLACK_LIST + \
     28       (r".*\bpublic[\\\/]tools[\\\/]bindings[\\\/]pylib[\\\/]mojom[\\\/]"
     29            r"generate[\\\/].+\.py$",
     30        r".*\bpublic[\\\/]tools[\\\/]bindings[\\\/]generators[\\\/].+\.py$",
     31        r".*\bspy[\\\/]ui[\\\/].+\.py$",
     32        r".*\btools[\\\/]pylib[\\\/]transitive_hash\.py$",
     33        r".*\btools[\\\/]test_runner\.py$")
     34 
     35   results = []
     36   pylint_extra_paths = [
     37       third_party_path,
     38       mojo_public_bindings_pylib_path,
     39       mojo_python_bindings_path,
     40   ]
     41   results += input_api.canned_checks.RunPylint(
     42       input_api, output_api, extra_paths_list=pylint_extra_paths,
     43       black_list=temporary_black_list)
     44   return results
     45