symbian-qemu-0.9.1-12/python-2.6.1/Tools/scripts/fixnotice.py
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Tools/scripts/fixnotice.py	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,113 @@
+#! /usr/bin/env python
+
+"""(Ostensibly) fix copyright notices in files.
+
+Actually, this sript will simply replace a block of text in a file from one
+string to another.  It will only do this once though, i.e. not globally
+throughout the file.  It writes a backup file and then does an os.rename()
+dance for atomicity.
+
+Usage: fixnotices.py [options] [filenames]
+Options:
+    -h / --help
+        Print this message and exit
+
+    --oldnotice=file
+        Use the notice in the file as the old (to be replaced) string, instead
+        of the hard coded value in the script.
+
+    --newnotice=file
+        Use the notice in the file as the new (replacement) string, instead of
+        the hard coded value in the script.
+
+    --dry-run
+        Don't actually make the changes, but print out the list of files that
+        would change.  When used with -v, a status will be printed for every
+        file.
+
+    -v / --verbose
+        Print a message for every file looked at, indicating whether the file
+        is changed or not.
+"""
+
+OLD_NOTICE = """/***********************************************************
+Copyright (c) 2000, BeOpen.com.
+Copyright (c) 1995-2000, Corporation for National Research Initiatives.
+Copyright (c) 1990-1995, Stichting Mathematisch Centrum.
+All rights reserved.
+
+See the file "Misc/COPYRIGHT" for information on usage and
+redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+******************************************************************/
+"""
+import os
+import sys
+import getopt
+
+NEW_NOTICE = ""
+DRYRUN = 0
+VERBOSE = 0
+
+
+def usage(code, msg=''):
+    print __doc__ % globals()
+    if msg:
+        print msg
+    sys.exit(code)
+
+
+def main():
+    global DRYRUN, OLD_NOTICE, NEW_NOTICE, VERBOSE
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], 'hv',
+                                   ['help', 'oldnotice=', 'newnotice=',
+                                    'dry-run', 'verbose'])
+    except getopt.error, msg:
+        usage(1, msg)
+
+    for opt, arg in opts:
+        if opt in ('-h', '--help'):
+            usage(0)
+        elif opt in ('-v', '--verbose'):
+            VERBOSE = 1
+        elif opt == '--dry-run':
+            DRYRUN = 1
+        elif opt == '--oldnotice':
+            fp = open(arg)
+            OLD_NOTICE = fp.read()
+            fp.close()
+        elif opt == '--newnotice':
+            fp = open(arg)
+            NEW_NOTICE = fp.read()
+            fp.close()
+
+    for arg in args:
+        process(arg)
+
+
+def process(file):
+    f = open(file)
+    data = f.read()
+    f.close()
+    i = data.find(OLD_NOTICE)
+    if i < 0:
+        if VERBOSE:
+            print 'no change:', file
+        return
+    elif DRYRUN or VERBOSE:
+        print '   change:', file
+    if DRYRUN:
+        # Don't actually change the file
+        return
+    data = data[:i] + NEW_NOTICE + data[i+len(OLD_NOTICE):]
+    new = file + ".new"
+    backup = file + ".bak"
+    f = open(new, "w")
+    f.write(data)
+    f.close()
+    os.rename(file, backup)
+    os.rename(new, file)
+
+
+if __name__ == '__main__':
+    main()