diff options
-rw-r--r-- | checkeol.py | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/checkeol.py b/checkeol.py index 68efc2fa..1bb02d67 100644 --- a/checkeol.py +++ b/checkeol.py @@ -1,24 +1,35 @@ -# Check files for incorrect newlines +# Check files for incorrect newlines and trailing whitespace. import fnmatch, os -def check_file(fname): +def check_file(fname, crlf=True, trail_white=True): for n, line in enumerate(open(fname, "rb")): - if "\r" in line: - print "%s@%d: CR found" % (fname, n) - return + if crlf: + if "\r" in line: + print "%s@%d: CR found" % (fname, n+1) + return + if trail_white: + line = line[:-1] + if line.rstrip() != line: + print "%s@%d: trailing whitespace found" % (fname, n+1) + return -def check_files(root, patterns): + +def check_files(root, patterns, **kwargs): for root, dirs, files in os.walk(root): for f in files: fname = os.path.join(root, f) for p in patterns: if fnmatch.fnmatch(fname, p): - check_file(fname) + check_file(fname, **kwargs) break - if '.svn' in dirs: - dirs.remove('.svn') + for pattern in ['.svn', '.hg']: + if pattern in dirs: + dirs.remove(pattern) + check_files("coverage", ["*.py"]) -check_files("test", ["*.py", "*,cover"]) +check_files("test", ["*.py"]) +check_files("test", ["*,cover"], trail_white=False) check_file("setup.py") +check_files(".", ["*.txt"]) |