Exemple #1
0
	def analyse_packages(self):
		"""
		Generate information about all the installed packages.
		"""
		section = 'PACKAGES'
		self.payload['PACKAGES'] = dict()

		for cpv in Packages.get_installed_CPVs():
			metadata = Metadata(cpv)
			package_info = dict()

			self.set_data(package_info, section, 'REPO',       metadata.get_repo_name)
			self.set_data(package_info, section, 'SIZE',       metadata.get_size)
			self.set_data(package_info, section, 'KEYWORD',    metadata.get_keyword)
			self.set_data(package_info, section, 'BUILD_TIME', metadata.get_build_time)

			if self.any_one_is_enabled(section, USE_FLAG_TYPES):
				# TODO: make this lazier
				use_flags = metadata.get_use_flag_information()

				for key in USE_FLAG_TYPES:
					self.set_data(package_info, section, key, lambda: use_flags[key])

			self.payload['PACKAGES'][cpv] = package_info