From 6e364a57c0bf7477b35284e7acbcf776e1d5ec3e Mon Sep 17 00:00:00 2001 From: John Koleszar Date: Thu, 18 Oct 2012 14:34:53 -0700 Subject: lint-hunks: better support for working tree 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 | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'tools') diff --git a/tools/lint-hunks.py b/tools/lint-hunks.py index 312fab138..b15a69143 100755 --- a/tools/lint-hunks.py +++ b/tools/lint-hunks.py @@ -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(":") -- cgit v1.2.3