| #! /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() |