#!/usr/local/bin/python
# Copyright 2000-2003 Michael Hudson mwh@python.net
#
# All Rights Reserved
#
#
# Permission to use, copy, modify, and distribute this software and
# its documentation for any purpose is hereby granted without fee,
# provided that the above copyright notice appear in all copies and
# that both that copyright notice and this permission notice appear in
# supporting documentation.
#
# THE AUTHOR MICHAEL HUDSON DISCLAIMS ALL WARRANTIES WITH REGARD TO
# THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
# INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
import os, time, sys
header = """\
# Copyright 2000-%s Michael Hudson mwh@python.net
#
# All Rights Reserved
#
#
# Permission to use, copy, modify, and distribute this software and
# its documentation for any purpose is hereby granted without fee,
# provided that the above copyright notice appear in all copies and
# that both that copyright notice and this permission notice appear in
# supporting documentation.
#
# THE AUTHOR MICHAEL HUDSON DISCLAIMS ALL WARRANTIES WITH REGARD TO
# THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
# INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\
"""%(time.localtime()[0])
header_lines = header.split("\n")
def process(thing):
if os.path.isdir(thing):
for subthing in os.listdir(thing):
process(os.path.join(thing, subthing))
elif os.path.isfile(thing):
if thing[-3:] == '.py':
process_file(thing)
else:
print "W `%s' not file or directory"%(thing,)
def process_file(file):
ilines = open(file).readlines()
prelines = []
old_copyright = []
if not ilines:
print "W ignoring empty file `%s'"%(file,)
return
i = 0
diff = 0
if ilines[0][:2] == '#!':
prelines.append(ilines[0])
i += 1
while i < len(ilines) and not ilines[i].strip():
prelines.append(ilines[i])
i += 1
while i < len(ilines) and ilines[i][:1] == '#':
old_copyright.append(ilines[i])
i += 1
if abs(len(old_copyright) - len(header_lines)) < 2:
for x, y in zip(old_copyright, header_lines):
if x[:-1] != y:
print "C change needed in", file
ofile = open(file, "w")
for l in prelines:
ofile.write(l)
ofile.write(header + "\n")
for l in ilines[i:]:
ofile.write(l)
ofile.close()
break
else:
print "M no change needed in", file
else:
print "A no (c) in", file
ofile = open(file, "w")
for l in prelines:
ofile.write(l)
ofile.write(header + "\n\n")
for l in ilines[len(prelines):]:
ofile.write(l)
ofile.close()
for thing in sys.argv[1:]:
process(thing)
syntax highlighted by Code2HTML, v. 0.9.1