1 |
commit: 001b0184cf72159a7d3c57501eb685205481ad3f |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Apr 5 18:52:51 2012 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Apr 5 18:52:51 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=001b0184 |
7 |
|
8 |
Scheduler: optimize action_uninstall |
9 |
|
10 |
--- |
11 |
pym/_emerge/Scheduler.py | 6 +++++- |
12 |
pym/_emerge/actions.py | 2 +- |
13 |
2 files changed, 6 insertions(+), 2 deletions(-) |
14 |
|
15 |
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py |
16 |
index 8d6ab9f..5500acf 100644 |
17 |
--- a/pym/_emerge/Scheduler.py |
18 |
+++ b/pym/_emerge/Scheduler.py |
19 |
@@ -135,7 +135,8 @@ class Scheduler(PollScheduler): |
20 |
portage.exception.PortageException.__init__(self, value) |
21 |
|
22 |
def __init__(self, settings, trees, mtimedb, myopts, |
23 |
- spinner, mergelist=None, favorites=None, graph_config=None): |
24 |
+ spinner, mergelist=None, favorites=None, graph_config=None, |
25 |
+ uninstall_only=False): |
26 |
PollScheduler.__init__(self) |
27 |
|
28 |
if mergelist is not None: |
29 |
@@ -151,6 +152,7 @@ class Scheduler(PollScheduler): |
30 |
self._spinner = spinner |
31 |
self._mtimedb = mtimedb |
32 |
self._favorites = favorites |
33 |
+ self._uninstall_only = uninstall_only |
34 |
self._args_set = InternalPackageSet(favorites, allow_repo=True) |
35 |
self._build_opts = self._build_opts_class() |
36 |
|
37 |
@@ -327,6 +329,8 @@ class Scheduler(PollScheduler): |
38 |
self._blocker_db = {} |
39 |
dynamic_deps = self.myopts.get("--dynamic-deps", "y") != "n" |
40 |
for root in self.trees: |
41 |
+ if self._uninstall_only: |
42 |
+ continue |
43 |
if graph_config is None: |
44 |
fake_vartree = FakeVartree(self.trees[root]["root_config"], |
45 |
pkg_cache=self._pkg_cache, dynamic_deps=dynamic_deps) |
46 |
|
47 |
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py |
48 |
index 22c3e26..9c87120 100644 |
49 |
--- a/pym/_emerge/actions.py |
50 |
+++ b/pym/_emerge/actions.py |
51 |
@@ -2657,7 +2657,7 @@ def action_uninstall(settings, trees, ldpath_mtimes, |
52 |
# redirection of ebuild phase output to logs as required for |
53 |
# options such as --quiet. |
54 |
sched = Scheduler(settings, trees, None, opts, |
55 |
- spinner) |
56 |
+ spinner, uninstall_only=True) |
57 |
sched._background = sched._background_mode() |
58 |
sched._status_display.quiet = True |