build: auto-fix whitespace in docs in pre-commit hook (#17490)

This commit is contained in:
Samuel Attard 2019-03-21 12:15:55 -07:00 committed by GitHub
parent 6555be2636
commit 784f9742bc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 29 additions and 11 deletions

View file

@ -116,8 +116,9 @@
"node script/lint.js --py --fix --only --",
"git add"
],
"docs/api/*.md": [
"docs/api/**/*.md": [
"node script/gen-filenames.js",
"python script/check-trailing-whitespace.py --fix",
"git add filenames.auto.gni"
]
}

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import argparse
import os
import sys
@ -9,6 +10,8 @@ DOCS_DIR = os.path.join(SOURCE_ROOT, 'docs')
def main():
os.chdir(SOURCE_ROOT)
args = parse_args()
filepaths = []
totalDirs = 0
try:
@ -23,7 +26,7 @@ def main():
trailingWhiteSpaceFiles = 0
for path in filepaths:
trailingWhiteSpaceFiles += hasTrailingWhiteSpace(path)
trailingWhiteSpaceFiles += hasTrailingWhiteSpace(path, args.fix)
print('Parsed through ' + str(len(filepaths)) +
' files within docs directory and its ' +
@ -32,7 +35,7 @@ def main():
' files with trailing whitespace.')
return trailingWhiteSpaceFiles
def hasTrailingWhiteSpace(filepath):
def hasTrailingWhiteSpace(filepath, fix):
try:
f = open(filepath, 'r')
lines = f.read().splitlines()
@ -41,12 +44,26 @@ def hasTrailingWhiteSpace(filepath):
finally:
f.close()
fixed_lines = []
for line in lines:
if line != line.rstrip():
fixed_lines.append(line.rstrip() + '\n')
if not fix and line != line.rstrip():
print "Trailing whitespace in: " + filepath
return True
if fix:
with open(filepath, 'w') as f:
print(fixed_lines)
f.writelines(fixed_lines)
return False
def parse_args():
parser = argparse.ArgumentParser(
description='Check for trailing whitespace in md files')
parser.add_argument('-f', '--fix',
help='Automatically fix trailing whitespace issues',
action='store_true')
return parser.parse_known_args()[0]
if __name__ == '__main__':
sys.exit(main())