mirror of
https://github.com/munki/munki.git
synced 2026-05-06 20:39:30 -05:00
Minor refactoring and documentation
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user