summaryrefslogtreecommitdiff
path: root/portato/backend/portage/settings.py
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2008-12-11 12:24:26 +0100
committerRené 'Necoro' Neumann <necoro@necoro.net>2008-12-11 12:24:26 +0100
commitddac2d472c5c775d34f316181b674429376f6d16 (patch)
treee27b6c69bf2aeb5b7c524c743081c908e90afa4a /portato/backend/portage/settings.py
parentcae73021d4789bd468a9fae55acd4e21d46397d5 (diff)
downloadportato-ddac2d472c5c775d34f316181b674429376f6d16.tar.gz
portato-ddac2d472c5c775d34f316181b674429376f6d16.tar.bz2
portato-ddac2d472c5c775d34f316181b674429376f6d16.zip
Use two different portage.config instances instead of just one: One for global stuff - and one for package related things (e.g. where setcpv() is called).
Also PortageSettings now takes care, that setcpv() is not called multiple times in a row with the same CPV. This should enhance performance :)
Diffstat (limited to 'portato/backend/portage/settings.py')
-rw-r--r--portato/backend/portage/settings.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/portato/backend/portage/settings.py b/portato/backend/portage/settings.py
index 0e7eccb..951d1a4 100644
--- a/portato/backend/portage/settings.py
+++ b/portato/backend/portage/settings.py
@@ -54,5 +54,16 @@ class PortageSettings:
self.porttree = self.trees[root]["porttree"]
self.vartree = self.trees[root]["vartree"]
self.virtuals = self.trees[root]["virtuals"]
+ self.global_settings = portage.config(clone=self.settings)
+ self._cpv = None
portage.settings = None # we use our own one ...
+
+ def setcpv (self, cpv, **kwargs):
+ if self._cpv is not None and cpv != self._cpv:
+ self.settings.setcpv(cpv, **kwargs)
+ self._cpv = cpv
+
+ def reset (self):
+ self.settings.reset()
+ self._cpv = None