home *** CD-ROM | disk | FTP | other *** search
- #! /usr/local/bin/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()
-