diff options
author | Marius Mauch <genone@gentoo.org> | 2007-07-06 00:24:40 +0000 |
---|---|---|
committer | Marius Mauch <genone@gentoo.org> | 2007-07-06 00:24:40 +0000 |
commit | 617754d104bfb45348d53b5aaf00ef6fa113c2e7 (patch) | |
tree | 8fe9e57ce3b97192e872a9dabb691684ce942236 /pym/portage/sets/dbapi.py | |
parent | 37bcfdd1c46a27329c18cbabd9b3229d087ab5d3 (diff) | |
download | portage-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.py | 43 |
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) + |