1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2024-12-13 11:40:29 +00:00
CC-Tweaked/tools/check-lines.py

42 lines
1.5 KiB
Python
Raw Normal View History

2020-01-23 15:11:50 +00:00
import pathlib, sys
problems = False
# Skip images and files without extensions
exclude = [ "*.png", "**/data/json-parsing/*.json" ]
2020-01-23 15:11:50 +00:00
for path in pathlib.Path("src").glob("**/*"):
# Ideally we'd use generated as a glob, but .match("generated/**/*.json") doesn't work!
if path.is_dir() or path.suffix == "" or any(path.match(x) for x in exclude) or path.parts[1] == "generated":
2020-01-23 15:11:50 +00:00
continue
with path.open(encoding="utf-8") as file:
has_dos, has_trailing, first, count = False, False, 0, True
2020-01-23 15:11:50 +00:00
for i, line in enumerate(file):
if first:
first = False
if line.strip() == "":
print("%s has empty first line" % path)
if len(line) >= 2 and line[-2] == "\r" and line[-1] == "\n" and not has_dos:
2020-01-23 15:11:50 +00:00
print("%s has contains '\\r\\n' on line %d" % (path, i + 1))
problems = has_dos = True
if len(line) >= 2 and line[-2] in " \t" and line[-1] == "\n" and not has_trailing:
print("%s has trailing whitespace on line %d" % (path, i + 1))
problems = has_trailing = True
if len(line) == 0 or line[-1] != "\n":
count = 0
elif line.strip() == "":
count += 1
else:
count = 1
if count != 1:
print("%s should have 1 trailing lines, but has %d" % (path, count))
2020-01-23 15:11:50 +00:00
problems = True
if problems:
sys.exit(1)