]> granicus.if.org Git - libvpx/commitdiff
lint-hunks: better support for working tree
authorJohn Koleszar <jkoleszar@google.com>
Thu, 18 Oct 2012 21:34:53 +0000 (14:34 -0700)
committerJohn Koleszar <jkoleszar@google.com>
Fri, 19 Oct 2012 19:31:16 +0000 (12:31 -0700)
When run with no arguments, report warnings in the diff between the
working tree and HEAD. With arguments, report warnings in the diff
between the named commit and its parents.

Change-Id: Ie10dcdecb303edf8af51bad645cc11206a1fc26b

tools/lint-hunks.py

index 312fab138a21314a1cf5b6c45886f918a97ffe8d..b15a691432d740aaa23884545a20730ce6ca2c2b 100755 (executable)
@@ -22,7 +22,7 @@ LONG_OPTIONS = ["help"]
 
 TOPLEVEL_CMD = ["git", "rev-parse", "--show-toplevel"]
 DIFF_CMD = ["git", "diff"]
-DIFF_INDEX_CMD = ["git", "diff-index", "-u", "--cached", "HEAD", "--"]
+DIFF_INDEX_CMD = ["git", "diff-index", "-u", "HEAD", "--"]
 SHOW_CMD = ["git", "show"]
 CPPLINT_FILTERS = ["-readability/casting", "-runtime/int"]
 
@@ -106,11 +106,20 @@ def main(argv=None):
         for filename, affected_lines in file_affected_line_map.iteritems():
             if filename.split(".")[-1] not in ("c", "h", "cc"):
                 continue
-            show_cmd = SHOW_CMD + [":" + filename]
-            show = Subprocess(show_cmd, stdout=subprocess.PIPE)
-            lint = Subprocess(cpplint_cmd, expected_returncode=(0, 1),
-                              stdin=show.stdout, stderr=subprocess.PIPE)
-            lint_out = lint.communicate()[1]
+
+            if args:
+                # File contents come from git
+                show_cmd = SHOW_CMD + [args[0] + ":" + filename]
+                show = Subprocess(show_cmd, stdout=subprocess.PIPE)
+                lint = Subprocess(cpplint_cmd, expected_returncode=(0, 1),
+                                  stdin=show.stdout, stderr=subprocess.PIPE)
+                lint_out = lint.communicate()[1]
+            else:
+                # File contents come from the working tree
+                lint = Subprocess(cpplint_cmd, expected_returncode=(0, 1),
+                                  stdin=subprocess.PIPE, stderr=subprocess.PIPE)
+                stdin = open(os.path.join(tl, filename)).read()
+                lint_out = lint.communicate(stdin)[1]
 
             for line in lint_out.split("\n"):
                 fields = line.split(":")