mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """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()
 | 
