On 09/25/2013 05:50 PM, Brian C. Lane wrote:
On Wed, Sep 25, 2013 at 02:21:46PM -0400, David Shea wrote:
Changed the pylint Module output so that it's more clear what file is being checked. Added an option to runpylint.sh to manually set the filename to display.
scripts/githooks/pre-commit | 47 ++++++++++++++++++++++++++++++++------------- tests/pylint/runpylint.sh | 16 ++++++++++++++- 2 files changed, 49 insertions(+), 14 deletions(-)
@@ -37,24 +38,44 @@ except CalledProcessError: pylint_files = [] # Lines look like: :100755 100755 2cf57974e13a2aae778e28f942a4d44bf6567409 6fe1b6caf32d565b2cdb6d1aee250aaddc6d3a04 M tests/pylint/runpylint.sh for gf in git_files.splitlines():
- path = gf.split()[-1]
- if is_python(path):
pylint_files.append(path)
- fields = gf.split()
- # If the file is being removed, ignore it
- if fields[4] == 'D':
continue
- elif is_python(fields[-1]):
pylint_files.append(fields[-1])
Good idea.
+# Make a list of tuples of (filename, tempfile) where the tempfile +# contains the file as staged for commit. +pylint_commits = [] +for pylint_file in pylint_files:
- commit = tempfile.NamedTemporaryFile()
- try:
commit.write(check_output(["git", "show", (":%s" % pylint_file)]))
- except CalledProcessError:
sys.exit(1)
- commit.flush()
- pylint_commits.append((pylint_file, commit))
I'm not sure I like this. Seems like overkill, and it's going to slow the check down on larger commits.
Is there at least a cheap way to check if the staged data doesn't match the filesystem data so we can warn about that?