Merge commit '0b09d754d66bb2026be92bbbc38f7c8ba454cf0c'
[unleashed.git] / usr / src / tools / onbld / Checks / Copyright.py
blob81a80058aa1d874ca47b3a4f48c1d7b21d807cd5
1 #! /usr/bin/python
3 # CDDL HEADER START
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.
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.
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]
20 # CDDL HEADER END
24 # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
27 # Copyright 2008, 2010, Richard Lowe
29 # Make sure there is a copyright claim for the current year.
31 import time, re, sys
33 def err(stream, msg, fname):
34 stream.write("%s: %s\n" % (fname, msg))
36 def is_copyright(line):
37 return re.search(r'Copyright (?!\[yyyy\])', line)
39 def is_current_copyright(line):
40 return re.search(r'Copyright.*\b%s\b' % time.strftime('%Y'), line)
42 def copyright(fh, filename=None, output=sys.stderr):
43 ret = rights = goodrights = 0
45 if not filename:
46 filename = fh.name
48 for line in fh:
49 if is_copyright(line):
50 rights += 1
51 if is_current_copyright(line):
52 goodrights += 1
53 break
55 if rights == 0:
56 err(output, "no copyright message found", filename)
57 ret = 1
58 elif goodrights == 0:
59 err(output, "no copyright claim for current year found",
60 filename)
61 ret = 1
63 return ret