def owner(self, filename): 'Return the package that owns filename.' args = ['--file-info-plist', filename] msg = 'Failed to get owner for filename: "{}"'.format(filename) rv = pkgutil.call_pkgutil(args, msg=msg) pi = plistlib_loads(rv.stdout.encode('utf-8')).get('path-info', None) if not pi: return None return pi[0].get('pkgid', None)
def owner(clazz, filename): 'Return the package that owns filename.' cmd = 'pkgutil --file-info-plist %s' % (filename) rv = clazz._call_pkgutil(cmd) if rv.exit_code != 0: raise RuntimeError('Failed to get owner for package: %s' % (package_name)) pi = plistlib_loads(rv.stdout.encode('utf-8')).get('path-info', None) if not pi: return None return pi[0].get('pkgid', None)
def package_info(self, package_name): 'Return platform specific information about a package.' args = ['--pkg-info-plist', package_name] msg = 'Failed to get info for package: "{}"'.format(package_name) rv = pkgutil.call_pkgutil(args, msg=msg) pi = plistlib_loads(rv.stdout.encode('utf-8')) return { 'package_id': pi['pkgid'], 'install_location': pi['install-location'], 'volume': pi['volume'], 'version': pi['pkg-version'], }
def package_info(clazz, package_name): 'Return True if native_package_manager is installed.' cmd = 'pkgutil --pkg-info-plist %s' % (package_name) rv = clazz._call_pkgutil(cmd) if rv.exit_code != 0: raise RuntimeError('Failed to get info for package: %s' % (package_name)) pi = plistlib_loads(rv.stdout.encode('utf-8')) return { 'package_id': pi['pkgid'], 'install_location': pi['install-location'], 'volume': pi['volume'], 'version': pi['pkg-version'], }
def _get_domain_object(clazz, domain): plist = clazz._get_domain_plist(domain) return plistlib_loads(plist)
def _mount_at_temp_dir(clazz, dmg): file_check.check_file(dmg) tmp_dir = temp_file.make_temp_dir() rv = clazz._execute_cmd('hdiutil', 'attach', '-mountpoint', tmp_dir, '-plist', dmg) entries = plistlib_loads(rv.stdout.encode('utf-8')) return clazz.mount_info(dmg, tmp_dir, entries.get('system-entities', []))
def info(clazz): rv = clazz._execute_cmd('hdiutil', 'info', '-plist') return plistlib_loads(rv.stdout.encode('utf-8')).get('images', [])
def _mount_at_temp_dir(clazz, dmg): file_check.check_file(dmg) tmp_dir = temp_file.make_temp_dir() rv = clazz._execute_cmd('hdiutil', 'attach', '-mountpoint', tmp_dir, '-plist', '-readonly', dmg) entries = plistlib_loads(rv.stdout.encode('utf-8')) return clazz.mount_info(dmg, tmp_dir, entries.get('system-entities', []))