summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-11-22 05:16:23 +0000
committerZac Medico <zmedico@gentoo.org>2009-11-22 05:16:23 +0000
commitc897fd747cb7d61b01bb2bbe71851a1be9654be9 (patch)
treee2db20c4fc8b2b9ae91ef5558a1211dcc077b0c1 /pym
parentc288717b899043fbea62c3f743e5d56d6751d1e6 (diff)
downloadportage-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.py13
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