1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)import os 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)import sys 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)def _CommonChecks(input_api, output_api): 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) results = [] 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) # Importing ui actually brings tvcm into the path. 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) import ui 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) from tvcm import presubmit_checker 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) checker = presubmit_checker.PresubmitChecker(input_api, output_api) 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) results += checker.RunChecks() 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return results 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)def GetPathsToPrepend(input_api): 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return [input_api.PresubmitLocalPath()] 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)def RunWithPrependedPath(prepended_path, fn, *args): 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) old_path = sys.path 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) try: 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) sys.path = prepended_path + old_path 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return fn(*args) 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) finally: 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) sys.path = old_path 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)def CheckChangeOnUpload(input_api, output_api): 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) def go(): 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) results = [] 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) results.extend(_CommonChecks(input_api, output_api)) 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return results 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return RunWithPrependedPath(GetPathsToPrepend(input_api), go) 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)def CheckChangeOnCommit(input_api, output_api): 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) def go(): 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) results = [] 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) results.extend(_CommonChecks(input_api, output_api)) 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return results 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return RunWithPrependedPath(GetPathsToPrepend(input_api), go) 41