diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2004-07-15 16:03:55 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2004-07-15 16:03:55 (GMT) |
commit | 7323f084229266bc000d4d6c1c2b7e73bcc11c13 (patch) | |
tree | 346720ae3accc05f78926249ad6408a87e2b2cf2 /Mac | |
parent | 9ba301e589b47af776294804240cc10e08e38498 (diff) | |
download | cpython-7323f084229266bc000d4d6c1c2b7e73bcc11c13.zip cpython-7323f084229266bc000d4d6c1c2b7e73bcc11c13.tar.gz cpython-7323f084229266bc000d4d6c1c2b7e73bcc11c13.tar.bz2 |
A script to fix version strings in .plist files.
Diffstat (limited to 'Mac')
-rw-r--r-- | Mac/OSX/fixversions.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Mac/OSX/fixversions.py b/Mac/OSX/fixversions.py new file mode 100644 index 0000000..e782e8c --- /dev/null +++ b/Mac/OSX/fixversions.py @@ -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 |