diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-10-23 06:28:06 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-10-23 06:28:06 +0000 |
commit | db85f2b81ef607357fe2eaa8719192a2edd62e77 (patch) | |
tree | 31cfcf28b19f79d7c5c0321cb34f2ec0a4d8af66 /pym/_emerge/depgraph.py | |
parent | 351ae4f408f327def14b13c653a82a5e96278ee0 (diff) | |
download | portage-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.py | 62 |
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. |