A script to fix version strings in .plist files.
This commit is contained in:
parent
9ba301e589
commit
7323f08422
|
@ -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()
|
||||
|
Loading…
Reference in New Issue