summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/depgraph.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-10-23 06:28:06 +0000
committerZac Medico <zmedico@gentoo.org>2009-10-23 06:28:06 +0000
commitdb85f2b81ef607357fe2eaa8719192a2edd62e77 (patch)
tree31cfcf28b19f79d7c5c0321cb34f2ec0a4d8af66 /pym/_emerge/depgraph.py
parent351ae4f408f327def14b13c653a82a5e96278ee0 (diff)
downloadportage-db85f2b81ef607357fe2eaa8719192a2edd62e77.tar.gz
portage-db85f2b81ef607357fe2eaa8719192a2edd62e77.tar.bz2
portage-db85f2b81ef607357fe2eaa8719192a2edd62e77.zip
Factor out duplicate "These are the packages that would be merged",
"Calculating dependencies", and spinner cleanup code. svn path=/main/trunk/; revision=14704
Diffstat (limited to 'pym/_emerge/depgraph.py')
-rw-r--r--pym/_emerge/depgraph.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index e79c74471..422e9efd2 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -5247,11 +5247,62 @@ def insert_category_into_atom(atom, category):
ret = None
return ret
+def _spinner_start(spinner, myopts):
+ if spinner is None:
+ return
+ if "--quiet" not in myopts and \
+ ("--pretend" in myopts or "--ask" in myopts or \
+ "--tree" in myopts or "--verbose" in myopts):
+ action = ""
+ if "--fetchonly" in myopts or "--fetch-all-uri" in myopts:
+ action = "fetched"
+ elif "--buildpkgonly" in myopts:
+ action = "built"
+ else:
+ action = "merged"
+ if "--tree" in myopts and action != "fetched": # Tree doesn't work with fetching
+ if "--unordered-display" in myopts:
+ portage.writemsg_stdout("\n" + \
+ darkgreen("These are the packages that " + \
+ "would be %s:" % action) + "\n\n")
+ else:
+ portage.writemsg_stdout("\n" + \
+ darkgreen("These are the packages that " + \
+ "would be %s, in reverse order:" % action) + "\n\n")
+ else:
+ portage.writemsg_stdout("\n" + \
+ darkgreen("These are the packages that " + \
+ "would be %s, in order:" % action) + "\n\n")
+
+ show_spinner = "--quiet" not in myopts and "--nodeps" not in myopts
+ if not show_spinner:
+ spinner.update = spinner.update_quiet
+
+ if show_spinner:
+ portage.writemsg_stdout("Calculating dependencies ")
+
+def _spinner_stop(spinner):
+ if spinner is None or \
+ spinner.update is spinner.update_quiet:
+ return
+
+ portage.writemsg_stdout("\b\b... done!\n")
+
def backtrack_depgraph(settings, trees, myopts, myparams,
myaction, myfiles, spinner):
"""
Raises PackageSetNotFound if myfiles contains a missing package set.
"""
+ _spinner_start(spinner, myopts)
+ try:
+ return _backtrack_depgraph(settings, trees, myopts, myparams,
+ myaction, myfiles, spinner)
+ finally:
+ _spinner_stop(spinner)
+
+def _backtrack_depgraph(settings, trees, myopts, myparams,
+ myaction, myfiles, spinner):
+
backtrack_max = 30
runtime_pkg_mask = None
allow_backtracking = True
@@ -5285,6 +5336,17 @@ def backtrack_depgraph(settings, trees, myopts, myparams,
def resume_depgraph(settings, trees, mtimedb, myopts, myparams, spinner):
"""
+ Raises PackageSetNotFound if myfiles contains a missing package set.
+ """
+ _spinner_start(spinner, myopts)
+ try:
+ return _resume_depgraph(settings, trees, mtimedb, myopts,
+ myparams, spinner)
+ finally:
+ _spinner_stop(spinner)
+
+def _resume_depgraph(settings, trees, mtimedb, myopts, myparams, spinner):
+ """
Construct a depgraph for the given resume list. This will raise
PackageNotFound or depgraph.UnsatisfiedResumeDep when necessary.
TODO: Return reasons for dropped_tasks, for display/logging.