Only presubmit check files in git repo for copyright note etc. (if using git).
authoryangguo@chromium.org <yangguo@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 2 Sep 2011 08:04:51 +0000 (08:04 +0000)
committeryangguo@chromium.org <yangguo@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 2 Sep 2011 08:04:51 +0000 (08:04 +0000)
Review URL: http://codereview.chromium.org/7792068

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

tools/presubmit.py

index 7b4719f4762725a0771bae77eddac28a031a456d..50d2620162f4cf5a8e352a788b61ee2c72402a82 100755 (executable)
@@ -42,6 +42,7 @@ import pickle
 import re
 import sys
 import subprocess
+from subprocess import PIPE
 
 # Disabled LINT rules and reason.
 # build/include_what_you_use: Started giving false positives for variables
@@ -236,6 +237,23 @@ class SourceProcessor(SourceFileProcessor):
   RELEVANT_EXTENSIONS = ['.js', '.cc', '.h', '.py', '.c', 'SConscript',
       'SConstruct', '.status', '.gyp', '.gypi']
 
+  # Overwriting the one in the parent class.
+  def FindFilesIn(self, path):
+    if os.path.exists(path+'/.git'):
+      output = subprocess.Popen('git ls-files --full-name',
+                                stdout=PIPE, cwd=path, shell=True)
+      result = []
+      for file in output.stdout.read().split():
+        for dir_part in os.path.dirname(file).split(os.sep):
+          if self.IgnoreDir(dir_part):
+            break
+        else:
+          if self.IsRelevant(file) and not self.IgnoreFile(file):
+            result.append(join(path, file))
+      if output.wait() == 0:
+        return result
+    return super(SourceProcessor, self).FindFilesIn(path)
+
   def IsRelevant(self, name):
     for ext in SourceProcessor.RELEVANT_EXTENSIONS:
       if name.endswith(ext):