]> granicus.if.org Git - python/commitdiff
A script to fix version strings in .plist files.
authorJack Jansen <jack.jansen@cwi.nl>
Thu, 15 Jul 2004 16:03:55 +0000 (16:03 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Thu, 15 Jul 2004 16:03:55 +0000 (16:03 +0000)
Mac/OSX/fixversions.py [new file with mode: 0644]

diff --git a/Mac/OSX/fixversions.py b/Mac/OSX/fixversions.py
new file mode 100644 (file)
index 0000000..e782e8c
--- /dev/null
@@ -0,0 +1,70 @@
+"""fixversions - Fix version numbers in .plist files to match current
+python version and date"""
+
+import sys
+import os
+import time
+import plistlib
+
+SHORTVERSION = "%d.%d" % (sys.version_info[0], sys.version_info[1])
+if sys.version_info[2]:
+       SHORTVERSION = SHORTVERSION + ".%d" % sys.version_info[2]
+if sys.version_info[3] != 'final':
+       SHORTVERSION = SHORTVERSION + "%s%d" % (sys.version_info[3], sys.version_info[4])
+
+COPYRIGHT = "(c) %d Python Software Foundation." % time.gmtime()[0]
+
+LONGVERSION = SHORTVERSION + ", " + COPYRIGHT
+
+def fix(file):
+       plist = plistlib.Plist.fromFile(file)
+       changed = False
+       if plist.has_key("CFBundleGetInfoString") and \
+                       plist["CFBundleGetInfoString"] != LONGVERSION:
+               plist["CFBundleGetInfoString"] = LONGVERSION
+               changed = True
+       if plist.has_key("CFBundleLongVersionString") and \
+                       plist["CFBundleLongVersionString"] != LONGVERSION:
+               plist["CFBundleLongVersionString"] = LONGVERSION
+               changed = True
+       if plist.has_key("NSHumanReadableCopyright") and \
+                       plist["NSHumanReadableCopyright"] != COPYRIGHT:
+               plist["NSHumanReadableCopyright"] = COPYRIGHT
+               changed = True
+       if plist.has_key("CFBundleVersion") and \
+                       plist["CFBundleVersion"] != SHORTVERSION:
+               plist["CFBundleVersion"] = SHORTVERSION
+               changed = True
+       if plist.has_key("CFBundleShortVersionString") and \
+                       plist["CFBundleShortVersionString"] != SHORTVERSION:
+               plist["CFBundleShortVersionString"] = SHORTVERSION
+               changed = True
+       if changed:
+               os.rename(file, file + '~')
+               plist.write(file)
+               
+def main():
+       if len(sys.argv) < 2:
+               print "Usage: %s plistfile ..." % sys.argv[0]
+               print "or: %s -a      fix standard Python plist files"
+               sys.exit(1)
+       if sys.argv[1] == "-a":
+               files = [
+                       "../OSXResources/app/Info.plist",
+                       "../OSXResources/framework/version.plist",
+                       "../Tools/IDE/PackageManager.plist",
+                       "../Tools/IDE/PythonIDE.plist",
+                       "../scripts/BuildApplet.plist"
+               ]
+               if not os.path.exists(files[0]):
+                       print "%s -a must be run from Mac/OSX directory"
+                       sys.exit(1)
+       else:
+               files = sys.argv[1:]
+       for file in files:
+               fix(file)
+       sys.exit(0)
+       
+if __name__ == "__main__":
+       main()
+       
\ No newline at end of file