diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-11-22 05:16:23 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-11-22 05:16:23 +0000 |
commit | c897fd747cb7d61b01bb2bbe71851a1be9654be9 (patch) | |
tree | e2db20c4fc8b2b9ae91ef5558a1211dcc077b0c1 /pym | |
parent | c288717b899043fbea62c3f743e5d56d6751d1e6 (diff) | |
download | portage-c897fd747cb7d61b01bb2bbe71851a1be9654be9.tar.gz portage-c897fd747cb7d61b01bb2bbe71851a1be9654be9.tar.bz2 portage-c897fd747cb7d61b01bb2bbe71851a1be9654be9.zip |
Add "repository" attribute to CategorySet (revert r11597). Thanks to TGL
<tom.gl@free.fr> for this patch, posted on bug #291414.
svn path=/main/trunk/; revision=14874
Diffstat (limited to 'pym')
-rw-r--r-- | pym/portage/sets/dbapi.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/pym/portage/sets/dbapi.py b/pym/portage/sets/dbapi.py index f2e7dd110..a5d7c7153 100644 --- a/pym/portage/sets/dbapi.py +++ b/pym/portage/sets/dbapi.py @@ -232,6 +232,13 @@ class CategorySet(PackageSet): myatoms.append(cp) self._setAtoms(myatoms) + def _builderGetRepository(cls, options, repositories): + repository = options.get("repository", "porttree") + if not repository in repositories: + raise SetConfigError(_("invalid repository class '%s'") % repository) + return repository + _builderGetRepository = classmethod(_builderGetRepository) + def _builderGetVisible(cls, options): return get_boolean(options, "only_visible", True) _builderGetVisible = classmethod(_builderGetVisible) @@ -244,9 +251,10 @@ class CategorySet(PackageSet): if not category in settings.categories: raise SetConfigError(_("invalid category name '%s'") % category) + repository = cls._builderGetRepository(options, trees.keys()) visible = cls._builderGetVisible(options) - return CategorySet(category, dbapi=trees["porttree"].dbapi, only_visible=visible) + return CategorySet(category, dbapi=trees[repository].dbapi, only_visible=visible) singleBuilder = classmethod(singleBuilder) def multiBuilder(cls, options, settings, trees): @@ -260,6 +268,7 @@ class CategorySet(PackageSet): else: categories = settings.categories + repository = cls._builderGetRepository(options, trees.keys()) visible = cls._builderGetVisible(options) name_pattern = options.get("name_pattern", "$category/*") @@ -267,7 +276,7 @@ class CategorySet(PackageSet): raise SetConfigError(_("name_pattern doesn't include $category placeholder")) for cat in categories: - myset = CategorySet(cat, trees["porttree"].dbapi, only_visible=visible) + myset = CategorySet(cat, trees[repository].dbapi, only_visible=visible) myname = name_pattern.replace("$category", cat) myname = myname.replace("${category}", cat) rValue[myname] = myset |