• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# -*- coding: utf-8 -*-
2
3#-------------------------------------------------------------------------
4# drawElements Quality Program utilities
5# --------------------------------------
6#
7# Copyright 2015 The Android Open Source Project
8#
9# Licensed under the Apache License, Version 2.0 (the "License");
10# you may not use this file except in compliance with the License.
11# You may obtain a copy of the License at
12#
13#      http://www.apache.org/licenses/LICENSE-2.0
14#
15# Unless required by applicable law or agreed to in writing, software
16# distributed under the License is distributed on an "AS IS" BASIS,
17# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18# See the License for the specific language governing permissions and
19# limitations under the License.
20#
21#-------------------------------------------------------------------------
22
23import	sys
24from	argparse				import	ArgumentParser
25from	common					import	getChangedFiles, getAllProjectFiles
26from	check_include_guards	import	checkIncludeGuards
27from	check_whitespace		import	checkWhitespace
28from	check_license			import	checkLicense
29from	check_boms				import	checkBOMs
30from	check_invalid_literals	import	checkInvalidLiterals
31
32if __name__ == "__main__":
33	parser = ArgumentParser()
34	parser.add_argument("-e",	"--only-errors",	action="store_true",	dest="onlyErrors",		default=False,	help="Print only on error")
35	parser.add_argument("-i",	"--only-changed",	action="store_true",	dest="useGitIndex",		default=False,	help="Check only modified files. Uses git.")
36	parser.add_argument("-b",	"--fix-bom",		action="store_true",	dest="fixBOMs",			default=False,	help="Attempt to fix BOMs")
37
38	args = parser.parse_args()
39
40	if args.useGitIndex:
41		files = getChangedFiles()
42	else:
43		files = getAllProjectFiles()
44
45	error = not all([
46		checkBOMs(files, args.fixBOMs),
47		checkWhitespace(files),
48		checkIncludeGuards(files),
49		checkLicense(files),
50		checkInvalidLiterals(files),
51		#todo checkRedundantIncludeGuards(files),
52		])
53
54	if	error:
55		print	"One or more checks failed"
56		sys.exit(1)
57	if	not	args.onlyErrors:
58		print	"All checks passed"
59