1+ #!/usr/local/bin/managed_python3
2+ 13import argparse
24import string
35import os
46import subprocess
57import tempfile
68import shutil
79import stat
10+ import plistlib
811
912#
1013# quickpkg
@@ -142,7 +145,7 @@ def finditemswithextension(dirpath, item_extension):
142145 if os.path.exists(dirpath):
143146 for x in os.listdir(dirpath):
144147 (item_basename, item_extension) = os.path.splitext(x)
145- item_extension = string .lstrip(item_extension, '.')
148+ item_extension = item_extension .lstrip('.')
146149 if item_extension == 'app':
147150 foundapps.append(os.path.join(dirpath, x))
148151 else:
@@ -157,7 +160,8 @@ def appNameAndVersion(app_path):
157160 print("Application at path %s does not have Info.plist" % app_path)
158161 # TODO: cleanup volumes here
159162 cleanup_and_exit(1)
160- info_plist = readPlist(info_path)
163+ with open(info_path, 'rb') as info_file:
164+ info_plist = plistlib.load(info_file)
161165 app_name = info_plist.get("CFBundleName")
162166 if app_name is None:
163167 app_name = info_plist.get("CFBundleDisplayName")
@@ -234,15 +238,15 @@ if __name__ == "__main__":
234238 args = parser.parse_args()
235239
236240 # remove trailing '/' from path
237- item_path = string.rstrip( args.item_path, '/')
241+ item_path = args.item_path.rstrip( '/')
238242
239243 if item_path.startswith('~'):
240244 item_path = os.path.expanduser(item_path)
241245 item_path = os.path.abspath(item_path)
242246
243247 # get file extension
244248 (item_basename, item_extension) = os.path.splitext(item_path)
245- item_extension = string .lstrip(item_extension, '.')
249+ item_extension = item_extension .lstrip('.')
246250
247251 # is extension supported
248252 if item_extension not in supported_extensions:
@@ -358,12 +362,14 @@ if __name__ == "__main__":
358362
359363 if not args.relocatable:
360364 # read and change component plist
361- components = readPlist(component_plist)
365+ with open(component_plist, 'rb') as component_file:
366+ components = plistlib.load(component_file)
362367 # component plist is an array of components
363368 for bundle in components:
364369 if "BundleIsRelocatable" in list(bundle.keys()):
365370 bundle["BundleIsRelocatable"] = False
366- writePlist(components, component_plist)
371+ with open(component_plist, 'wb') as component_file:
372+ plistlib.dump(components, component_file, fmt=plistlib.FMT_XML)
367373
368374 pkg_name = "{name}-{version}.pkg"
369375 if args.output:
0 commit comments