76 lines
1.6 KiB
Python
Executable File
76 lines
1.6 KiB
Python
Executable File
#! /usr/bin/env python
|
|
|
|
import regex
|
|
import regsub
|
|
import glob
|
|
import sys
|
|
import os
|
|
import stat
|
|
import getopt
|
|
|
|
oldcprt = """\
|
|
Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum,
|
|
Amsterdam, The Netherlands."""
|
|
newcprt = """\
|
|
Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
|
|
The Netherlands."""
|
|
|
|
oldprog = regex.compile(oldcprt)
|
|
newprog = regex.compile(newcprt)
|
|
|
|
HEADSIZE = 1024
|
|
|
|
def main():
|
|
opts, args = getopt.getopt(sys.argv[1:], 'y:')
|
|
agelimit = 0L
|
|
for opt, arg in opts:
|
|
if opt == '-y':
|
|
agelimit = os.stat(arg)[stat.ST_MTIME]
|
|
if not args:
|
|
args = glob.glob('*.[ch]')
|
|
for file in args:
|
|
try:
|
|
age = os.stat(file)[stat.ST_MTIME]
|
|
except os.error, msg:
|
|
print file, ': stat failed :', msg
|
|
continue
|
|
if age <= agelimit:
|
|
print file, ': too old, skipped'
|
|
continue
|
|
try:
|
|
f = open(file, 'r')
|
|
except IOError, msg:
|
|
print file, ': open failed :', msg
|
|
continue
|
|
head = f.read(HEADSIZE)
|
|
if oldprog.search(head) < 0:
|
|
if newprog.search(head) < 0:
|
|
print file, ': NO COPYRIGHT FOUND'
|
|
else:
|
|
print file, ': (new copyright already there)'
|
|
f.close()
|
|
continue
|
|
newhead = regsub.sub(oldcprt, newcprt, head)
|
|
data = newhead + f.read()
|
|
f.close()
|
|
try:
|
|
f = open(file + '.new', 'w')
|
|
except IOError, msg:
|
|
print file, ': creat failed :', msg
|
|
continue
|
|
f.write(data)
|
|
f.close()
|
|
try:
|
|
os.rename(file, file + '~')
|
|
except IOError, msg:
|
|
print file, ': rename to backup failed :', msg
|
|
continue
|
|
try:
|
|
os.rename(file + '.new', file)
|
|
except IOError, msg:
|
|
print file, ': rename from .new failed :', msg
|
|
continue
|
|
print file, ': copyright changed.'
|
|
|
|
main()
|