summaryrefslogtreecommitdiffstats
path: root/pym/portage/sets/dbapi.py
diff options
context:
space:
mode:
authorMarius Mauch <genone@gentoo.org>2007-07-06 00:24:40 +0000
committerMarius Mauch <genone@gentoo.org>2007-07-06 00:24:40 +0000
commit617754d104bfb45348d53b5aaf00ef6fa113c2e7 (patch)
tree8fe9e57ce3b97192e872a9dabb691684ce942236 /pym/portage/sets/dbapi.py
parent37bcfdd1c46a27329c18cbabd9b3229d087ab5d3 (diff)
downloadportage-617754d104bfb45348d53b5aaf00ef6fa113c2e7.tar.gz
portage-617754d104bfb45348d53b5aaf00ef6fa113c2e7.tar.bz2
portage-617754d104bfb45348d53b5aaf00ef6fa113c2e7.zip
Add first draft of PackageSet backend modules
svn path=/main/trunk/; revision=7170
Diffstat (limited to 'pym/portage/sets/dbapi.py')
-rw-r--r--pym/portage/sets/dbapi.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/pym/portage/sets/dbapi.py b/pym/portage/sets/dbapi.py
new file mode 100644
index 000000000..65a52c47d
--- /dev/null
+++ b/pym/portage/sets/dbapi.py
@@ -0,0 +1,43 @@
+# Copyright 2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+from portage.versions import catsplit
+
+from portage.sets import PackageSet
+
+class EverythingSet(PackageSet):
+ _operations = ["merge", "unmerge"]
+
+ def __init__(self, name, vdbapi):
+ super(EverythingSet, self).__init__(name)
+ self._db = vdbapi
+
+ def load(self):
+ mynodes = []
+ for cp in self._db.cp_all():
+ if len(self._db.cp_list(cp)) > 1:
+ for cpv in self._db.cp_list(cp):
+ myslot = self._db.aux_get(cpv, ["SLOT"])[0]
+ mynodes.append(cp+":"+myslot)
+ else:
+ mynodes.append(cp)
+ self._setNodes(mynodes)
+
+class CategorySet(PackageSet):
+ _operations = ["merge", "unmerge"]
+
+ def __init__(self, name, category, portdbapi, only_visible=True):
+ super(CategorySet, self).__init__(name)
+ self._db = portdbapi
+ self._category = category
+ self._check = only_visible
+
+ def load(self):
+ mynodes = []
+ for cp in self._db.cp_all():
+ if catsplit(cp)[0] == self._category:
+ if (not self._check) or len(self._db.match(cp)) > 0:
+ mynodes.append(cp)
+ self._setNodes(mynodes)
+