Gentoo Archives: gentoo-commits

From: "Marius Mauch (genone)" <genone@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r11584 - main/trunk/pym/portage/sets
Date: Sun, 28 Sep 2008 17:27:48
Message-Id: E1Kk03d-0000KX-AZ@stork.gentoo.org
1 Author: genone
2 Date: 2008-09-28 17:27:44 +0000 (Sun, 28 Sep 2008)
3 New Revision: 11584
4
5 Modified:
6 main/trunk/pym/portage/sets/__init__.py
7 Log:
8 Add operator logic to sets.conf
9
10 Modified: main/trunk/pym/portage/sets/__init__.py
11 ===================================================================
12 --- main/trunk/pym/portage/sets/__init__.py 2008-09-28 17:02:51 UTC (rev 11583)
13 +++ main/trunk/pym/portage/sets/__init__.py 2008-09-28 17:27:44 UTC (rev 11584)
14 @@ -123,14 +123,38 @@
15 def getSetAtoms(self, setname, ignorelist=None):
16 myset = self.getSets()[setname]
17 myatoms = myset.getAtoms()
18 +
19 + extend = set()
20 + remove = set()
21 + intersect = set()
22 +
23 if ignorelist is None:
24 ignorelist = set()
25 + if not setname in ignorelist:
26 + if self.has_option(myset.creator, "extend"):
27 + extend.update(self.get(myset.creator, "extend").split())
28 + if self.has_option(myset.creator, "remove"):
29 + remove.update(self.get(myset.creator, "remove").split())
30 + if self.has_option(myset.creator, "intersect"):
31 + intersect.update(self.get(myset.creator, "intersect").split())
32 +
33 ignorelist.add(setname)
34 for n in myset.getNonAtoms():
35 - if n[0] == SETPREFIX and n[1:] in self.psets:
36 - if n[1:] not in ignorelist:
37 - myatoms.update(self.getSetAtoms(n[1:],
38 - ignorelist=ignorelist))
39 + if n.startswith(SETPREFIX) and n[len(SETPREFIX):] in self.psets:
40 + extend.add(n[len(SETPREFIX):])
41 +
42 + for s in ignorelist:
43 + extend.discard(s)
44 + remove.discard(s)
45 + intersect.discard(s)
46 +
47 + for s in extend:
48 + myatoms.update(self.getSetAtoms(s, ignorelist=ignorelist))
49 + for s in remove:
50 + myatoms.difference_update(self.getSetAtoms(s, ignorelist=None))
51 + for s in intersect:
52 + myatoms.intersection_update(self.getSetAtoms(s, ignorelist=None))
53 +
54 return myatoms
55
56 def load_default_config(settings, trees):