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.
4import os
5import sys
6
7def _CommonChecks(input_api, output_api):
8  results = []
9  # Importing ui actually brings tvcm into the path.
10  import ui
11  from tvcm import presubmit_checker
12  checker = presubmit_checker.PresubmitChecker(input_api, output_api)
13  results += checker.RunChecks()
14  return results
15
16def GetPathsToPrepend(input_api):
17  return [input_api.PresubmitLocalPath()]
18
19def RunWithPrependedPath(prepended_path, fn, *args):
20  old_path = sys.path
21
22  try:
23    sys.path = prepended_path + old_path
24    return fn(*args)
25  finally:
26    sys.path = old_path
27
28def CheckChangeOnUpload(input_api, output_api):
29  def go():
30    results = []
31    results.extend(_CommonChecks(input_api, output_api))
32    return results
33  return RunWithPrependedPath(GetPathsToPrepend(input_api), go)
34
35def CheckChangeOnCommit(input_api, output_api):
36  def go():
37    results = []
38    results.extend(_CommonChecks(input_api, output_api))
39    return results
40  return RunWithPrependedPath(GetPathsToPrepend(input_api), go)
41