blob: 0277c7946f652a4c19843a330eea77bfc08b1bb8 [file] [log] [blame]
Jack Jansen7323f082004-07-15 16:03:55 +00001"""fixversions - Fix version numbers in .plist files to match current
2python version and date"""
3
4import sys
5import os
6import time
7import plistlib
8
9SHORTVERSION = "%d.%d" % (sys.version_info[0], sys.version_info[1])
10if sys.version_info[2]:
Tim Peters182b5ac2004-07-18 06:16:08 +000011 SHORTVERSION = SHORTVERSION + ".%d" % sys.version_info[2]
Jack Jansen7323f082004-07-15 16:03:55 +000012if sys.version_info[3] != 'final':
Tim Peters182b5ac2004-07-18 06:16:08 +000013 SHORTVERSION = SHORTVERSION + "%s%d" % (sys.version_info[3], sys.version_info[4])
Jack Jansen7323f082004-07-15 16:03:55 +000014
15COPYRIGHT = "(c) %d Python Software Foundation." % time.gmtime()[0]
16
17LONGVERSION = SHORTVERSION + ", " + COPYRIGHT
18
19def fix(file):
Tim Peters182b5ac2004-07-18 06:16:08 +000020 plist = plistlib.Plist.fromFile(file)
21 changed = False
22 if plist.has_key("CFBundleGetInfoString") and \
23 plist["CFBundleGetInfoString"] != LONGVERSION:
24 plist["CFBundleGetInfoString"] = LONGVERSION
25 changed = True
26 if plist.has_key("CFBundleLongVersionString") and \
27 plist["CFBundleLongVersionString"] != LONGVERSION:
28 plist["CFBundleLongVersionString"] = LONGVERSION
29 changed = True
30 if plist.has_key("NSHumanReadableCopyright") and \
31 plist["NSHumanReadableCopyright"] != COPYRIGHT:
32 plist["NSHumanReadableCopyright"] = COPYRIGHT
33 changed = True
34 if plist.has_key("CFBundleVersion") and \
35 plist["CFBundleVersion"] != SHORTVERSION:
36 plist["CFBundleVersion"] = SHORTVERSION
37 changed = True
38 if plist.has_key("CFBundleShortVersionString") and \
39 plist["CFBundleShortVersionString"] != SHORTVERSION:
40 plist["CFBundleShortVersionString"] = SHORTVERSION
41 changed = True
42 if changed:
43 os.rename(file, file + '~')
44 plist.write(file)
45
Jack Jansen7323f082004-07-15 16:03:55 +000046def main():
Tim Peters182b5ac2004-07-18 06:16:08 +000047 if len(sys.argv) < 2:
48 print "Usage: %s plistfile ..." % sys.argv[0]
49 print "or: %s -a fix standard Python plist files"
50 sys.exit(1)
51 if sys.argv[1] == "-a":
52 files = [
53 "../OSXResources/app/Info.plist",
54 "../OSXResources/framework/version.plist",
55 "../Tools/IDE/PackageManager.plist",
56 "../Tools/IDE/PythonIDE.plist",
57 "../scripts/BuildApplet.plist"
58 ]
59 if not os.path.exists(files[0]):
60 print "%s -a must be run from Mac/OSX directory"
61 sys.exit(1)
62 else:
63 files = sys.argv[1:]
64 for file in files:
65 fix(file)
66 sys.exit(0)
67
Jack Jansen7323f082004-07-15 16:03:55 +000068if __name__ == "__main__":
Tim Peters182b5ac2004-07-18 06:16:08 +000069 main()