Minor refactoring and documentation

This commit is contained in:
Hannes Juutilainen
2013-03-14 15:15:24 +02:00
parent f3da0ce63a
commit 1093f6a55f
2 changed files with 31 additions and 10 deletions
+4 -4
View File
@@ -55,8 +55,8 @@ def getCatalogInfoFromDmg(dmgpath, options):
To-do: handle multiple installer items on a disk image(?)
"""
cataloginfo = None
dmgWasAlreadyMounted = munkicommon.dmgIsMounted(dmgpath)
mountpoints = munkicommon.mountdmg(dmgpath)
dmgWasAlreadyMounted = munkicommon.diskImageIsMounted(dmgpath)
mountpoints = munkicommon.mountdmg(dmgpath, use_existing_mounts=True)
if not mountpoints:
print >> sys.stderr, "Could not mount %s!" % dmgpath
exit(-1)
@@ -701,10 +701,10 @@ def main():
if item and os.path.exists(item):
# Check if the item is a mount point for a disk image
if munkicommon.dmgForMountPoint(item):
if munkicommon.pathIsVolumeMountPoint(item):
# Get the disk image path for the mount point
# and use that instead of the original item
item = munkicommon.dmgForMountPoint(item)
item = munkicommon.diskImageForMountPoint(item)
# get size of installer item
itemsize = 0
+27 -6
View File
@@ -820,6 +820,7 @@ def DMGhasSLA(dmgpath):
def hdiutilInfo():
"""
Convenience method for running 'hdiutil info -plist'
Returns the root object parsed with readPlistFromString()
"""
proc = subprocess.Popen(
@@ -839,7 +840,7 @@ def hdiutilInfo():
return None
def dmgIsMounted(dmgpath):
def diskImageIsMounted(dmgpath):
"""
Returns true if the given disk image is currently mounted
"""
@@ -854,12 +855,32 @@ def dmgIsMounted(dmgpath):
return isMounted
def dmgForMountPoint(path):
def pathIsVolumeMountPoint(path):
"""
Checks if the given file system path
is a mount point for a disk image
Checks if the given path is a volume for an attached disk image
Returns the dmg path or None
Returns true if the given path is a mount point or false if it isn't
"""
isMountPoint = False
infoplist = hdiutilInfo()
for imageProperties in infoplist.get('images'):
if 'image-path' in imageProperties:
imagepath = imageProperties['image-path']
for entity in imageProperties.get('system-entities', []):
if 'mount-point' in entity:
mountpoint = entity['mount-point']
if path == mountpoint:
isMountPoint = True
break
return isMountPoint
def diskImageForMountPoint(path):
"""
Resolves the given mount point path to an attached disk image path
Returns a path to a disk image file or None if the path is not
a valid mount point
"""
dmgpath = None
infoplist = hdiutilInfo()
@@ -873,7 +894,7 @@ def dmgForMountPoint(path):
dmgpath = imagepath
return dmgpath
def mountPointsForDmg(dmgpath):
def mountPointsForDiskImage(dmgpath):
"""
Returns a list of mountpoints for the given disk image
"""