blob: fec937391af2eff527391d31ccc0afc03997d225 [file] [log] [blame]
# Copyright 2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from portage import os
from portage.util import grabfile_package, stack_lists
from portage._sets.base import PackageSet
class ProfilePackageSet(PackageSet):
_operations = ["merge"]
def __init__(self, profiles, debug=False):
super(ProfilePackageSet, self).__init__()
self._profiles = profiles
if profiles:
desc_profile = profiles[-1]
if desc_profile.user_config and len(profiles) > 1:
desc_profile = profiles[-2]
description = desc_profile.location
else:
description = None
self.description = "Profile packages for profile %s" % description
def load(self):
self._setAtoms(x for x in stack_lists(
[grabfile_package(os.path.join(y.location, "packages"),
verify_eapi=True, eapi=y.eapi, eapi_default=None,
allow_build_id=y.allow_build_id)
for y in self._profiles
if "profile-set" in y.profile_formats],
incremental=1) if x[:1] != "*")
def singleBuilder(self, options, settings, trees):
return ProfilePackageSet(
settings._locations_manager.profiles_complex)
singleBuilder = classmethod(singleBuilder)