This makes it easier to find all offending files in a commit, instead of having to only get notified of one file per run.
36 lines
976 B
Python
36 lines
976 B
Python
#!/usr/bin/env python
|
|
"""
|
|
Checker for line endings
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Make sure Python (.py) and Bash completion (.bashcomp) files do not
|
|
contain CR/LF newlines.
|
|
|
|
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
|
:license: BSD, see LICENSE for details.
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
|
|
if __name__ == '__main__':
|
|
error = False
|
|
for directory in sys.argv[1:]:
|
|
if not os.path.exists(directory):
|
|
continue
|
|
|
|
for root, dirs, files in os.walk(directory):
|
|
for filename in files:
|
|
if not filename.endswith('.py') and not filename.endswith('.bashcomp'):
|
|
continue
|
|
|
|
full_path = os.path.join(root, filename)
|
|
with open(full_path, 'rb') as f:
|
|
if b'\r\n' in f.read():
|
|
print('CR/LF found in', full_path)
|
|
error = True
|
|
|
|
if error:
|
|
sys.exit(1)
|
|
|
|
sys.exit(0)
|