xref: /illumos-gate/usr/src/tools/scripts/hdrchk.py (revision 4eaa471005973e11a6110b69fe990530b3b95a38)
1#! /usr/bin/python
2#
3# CDDL HEADER START
4#
5# The contents of this file are subject to the terms of the
6# Common Development and Distribution License (the "License").
7# You may not use this file except in compliance with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22
23#
24# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
25# Use is subject to license terms.
26#
27# ident	"%Z%%M%	%I%	%E% SMI"
28#
29
30#
31# Check header files conform to ON standards.
32#
33
34import sys, os, getopt
35
36sys.path.append(os.path.join(os.path.dirname(__file__), '../lib/python'))
37sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
38
39from onbld.Checks.HdrChk import hdrchk
40
41def usage():
42	progname = os.path.split(sys.argv[0])[1]
43	msg =  ['Usage: %s [-a] file [file...]\n' % progname,
44		'  -a\tApply (more lenient) application header rules\n']
45	sys.stderr.writelines(msg)
46
47
48try:
49	opts, args = getopt.getopt(sys.argv[1:], 'a')
50except getopt.GetoptError:
51	usage()
52	sys.exit(2)
53
54lenient = False
55for opt, arg in opts:
56	if opt == '-a':
57		lenient = True
58
59ret = 0
60for filename in args:
61	try:
62		fh = open(filename, 'r')
63	except IOError, e:
64		sys.stderr.write("failed to open '%s': %s\n" %
65				 (e.filename, e.strerror))
66	else:
67		ret |= hdrchk(fh, lenient=lenient, output=sys.stderr)
68		fh.close()
69sys.exit(ret)
70