1c8d359546
This commit adds the tools/lint script to run the pep8 linter as well as modifies .travis.yml to run the linter in Travis.
37 lines
1.1 KiB
Python
Executable file
37 lines
1.1 KiB
Python
Executable file
#! /usr/bin/env python
|
|
|
|
from pep8 import check_pep8
|
|
from server_lib import lister
|
|
|
|
import sys
|
|
import optparse
|
|
from typing import cast, Callable, Dict, Iterator, List
|
|
|
|
EXCLUDED_FILES = [
|
|
# This is an external file that doesn't comply with our codestyle
|
|
'integrations/perforce/git_p4.py',
|
|
]
|
|
|
|
def lint_all(args, options):
|
|
|
|
by_lang = cast(Dict[str, List[str]],
|
|
lister.list_files(args, modified_only=options.modified,
|
|
ftypes=['py', 'sh', 'js', 'pp', 'css', 'handlebars',
|
|
'html', 'json', 'md', 'txt', 'text', 'yaml'],
|
|
use_shebang=True, group_by_ftype=True, exclude=EXCLUDED_FILES))
|
|
failed = check_pep8(by_lang['py'])
|
|
return failed
|
|
|
|
def run():
|
|
# type: () -> None
|
|
parser = optparse.OptionParser()
|
|
parser.add_option('--modified', '-m',
|
|
action='store_true',
|
|
help='Only check modified files')
|
|
(options, args) = parser.parse_args()
|
|
failed = lint_all(args, options)
|
|
sys.exit(1 if failed else 0)
|
|
|
|
if __name__ == '__main__':
|
|
run()
|