48 lines
1.2 KiB
Python
Executable file
48 lines
1.2 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
import fnmatch
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
|
|
CPPLINT = os.path.join(SOURCE_ROOT, 'vendor', 'google-styleguide', 'trunk', 'cpplint', 'cpplint.py')
|
|
LINE_LENGTH = 100
|
|
|
|
IGNORED_FILES = [
|
|
os.path.join('browser', 'mac', 'bry_inspectable_web_contents_view_private.h'),
|
|
]
|
|
|
|
FILTERS = [
|
|
'-build/header_guard',
|
|
'-build/include_what_you_use',
|
|
'-legal/copyright',
|
|
# cpplint doesn't like the BOOL& parameters that ui::WindowImpl uses.
|
|
'-runtime/references',
|
|
]
|
|
|
|
|
|
def main():
|
|
os.chdir(SOURCE_ROOT)
|
|
files = list_files(['browser', 'common'],
|
|
['*.cc', '*.h'])
|
|
return cpplint(set(files) - set(IGNORED_FILES))
|
|
|
|
|
|
def list_files(directories, filters):
|
|
matches = []
|
|
for directory in directories:
|
|
for root, _, filenames, in os.walk(directory):
|
|
for f in filters:
|
|
for filename in fnmatch.filter(filenames, f):
|
|
matches.append(os.path.join(root, filename))
|
|
return matches
|
|
|
|
|
|
def cpplint(files):
|
|
return subprocess.call([sys.executable, CPPLINT, '--linelength=%d' % LINE_LENGTH, '--filter=' + ','.join(FILTERS)] + list(files))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|