File: fixversions.py

package info (click to toggle)
python2.4 2.4.6-1%2Blenny1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 44,888 kB
  • ctags: 86,995
  • sloc: ansic: 306,391; python: 271,931; sh: 10,210; makefile: 4,248; perl: 3,736; lisp: 3,678; xml: 894; objc: 756; cpp: 7; sed: 2
file content (69 lines) | stat: -rw-r--r-- 2,438 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
"""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()