Home | History | Annotate | Download | only in extensions
      1 #!/usr/bin/python
      2 # Copyright (c) 2009 The Chromium Authors. All rights reserved.
      3 # Use of this source code is governed by a BSD-style license that can be
      4 # found in the LICENSE file.
      5 
      6 import os.path
      7 
      8 # When files in these directories are changed, we display a warning.
      9 DEPENDENT_DIRS = set([
     10   os.path.normpath("chrome/common/extensions/api"),
     11   os.path.normpath("chrome/common/extensions/docs")
     12 ])
     13 
     14 # Except for these directories.
     15 BLACKLIST_DIRS = set([
     16   os.path.normpath("chrome/common/extensions/docs/server")
     17 ])
     18 
     19 REBUILD_WARNING = """
     20 This change modifies file(s) which the extension docs depend on. You must
     21 rebuild the extension docs.
     22 
     23 Build by running the build.py script in chrome/common/extensions/docs/build/.
     24 
     25 Be sure to include any modified resulting static files
     26 (/common/extension/docs/*.html) in your final changelist. 
     27 """
     28 
     29 def CheckChange(input_api, output_api):  
     30   for f in input_api.AffectedFiles():
     31     dir = os.path.normpath(input_api.os_path.dirname(f.LocalPath()))
     32     while len(dir):
     33       if dir in BLACKLIST_DIRS:
     34         return []
     35       if dir in DEPENDENT_DIRS:
     36         return [output_api.PresubmitPromptWarning(REBUILD_WARNING)]
     37       dir = os.path.dirname(dir)
     38   return []
     39 
     40 def CheckChangeOnUpload(input_api, output_api):
     41   return CheckChange(input_api, output_api)
     42 
     43 def CheckChangeOnCommit(input_api, output_api):
     44   return CheckChange(input_api, output_api)
     45