summaryrefslogtreecommitdiff
path: root/checkeol.py
blob: cc0cab3b3b44dd22f0054b1476cf2f02f3ee0b3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Check files for incorrect newlines and trailing whitespace.

import fnmatch, os

def check_file(fname, crlf=True, trail_white=True):
    for n, line in enumerate(open(fname, "rb")):
        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, **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, **kwargs)
                    break
        for pattern in ['.svn', '.hg']:
            if pattern in dirs:
                dirs.remove(pattern)


check_files("coverage", ["*.py", "*.c"])
check_files("coverage/htmlfiles", ["*.html", "*.css", "*.js"])
check_files("test", ["*.py"])
check_files("test", ["*,cover"], trail_white=False)
check_files("test/js", ["*.js", "*.html"])
check_file("setup.py")
check_files("doc", ["*.rst"])
check_files(".", ["*.txt"])