"Calculating dependencies", and spinner cleanup code.
svn path=/main/trunk/; revision=14704
"""
print(colorize("GOOD", "*** Resuming merge..."))
- if self._show_list():
- if "--tree" in self.myopts:
- if "--unordered-display" in self.myopts:
- portage.writemsg_stdout("\n" + \
- darkgreen("These are the packages that " + \
- "would be merged:") + "\n\n")
- else:
- portage.writemsg_stdout("\n" + \
- darkgreen("These are the packages that " + \
- "would be merged, in reverse order:") + "\n\n")
-
- else:
- portage.writemsg_stdout("\n" + \
- darkgreen("These are the packages that " + \
- "would be merged, in order:\n\n"))
-
- show_spinner = "--quiet" not in self.myopts and \
- "--nodeps" not in self.myopts
-
- if show_spinner:
- print("Calculating dependencies ", end=' ')
-
myparams = create_depgraph_params(self.myopts, None)
success = False
e = None
mydepgraph = e.depgraph
dropped_tasks = set()
- if show_spinner:
- print("\b\b... done!")
-
if e is not None:
def unsatisfied_resume_dep_msg():
mydepgraph.display_problems()
writemsg("%s%s\n" % (prefix, line))
writemsg(prefix + "\n")
- 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")
- print()
- else:
- print()
- print(darkgreen("These are the packages that would be %s, in order:") % action)
- print()
-
- show_spinner = "--quiet" not in myopts and "--nodeps" not in myopts
- if not show_spinner:
- spinner.update = spinner.update_quiet
-
if resume:
favorites = mtimedb["resume"].get("favorites")
if not isinstance(favorites, list):
favorites = []
-
- if show_spinner:
- print("Calculating dependencies ", end=' ')
myparams = create_depgraph_params(myopts, myaction)
resume_data = mtimedb["resume"]
depgraph.UnsatisfiedResumeDep) as e:
if isinstance(e, depgraph.UnsatisfiedResumeDep):
mydepgraph = e.depgraph
- if show_spinner:
- print()
+
from textwrap import wrap
from portage.output import EOutput
out = EOutput()
"the operation manually."
for line in wrap(msg, 72):
out.eerror(line)
- else:
- if show_spinner:
- print("\b\b... done!")
if success:
if dropped_tasks:
print(darkgreen("emerge: It seems we have nothing to resume..."))
return os.EX_OK
- if "--quiet" not in myopts and "--nodeps" not in myopts:
- print("Calculating dependencies ", end=' ')
- sys.stdout.flush()
-
myparams = create_depgraph_params(myopts, myaction)
try:
success, mydepgraph, favorites = backtrack_depgraph(
settings, trees, myopts, myparams, myaction, myfiles, spinner)
except portage.exception.PackageSetNotFound as e:
- if show_spinner:
- print("\b\b... done!")
root_config = trees[settings["ROOT"]]["root_config"]
display_missing_pkg_set(root_config, e.value)
return 1
- if show_spinner:
- print("\b\b... done!")
-
if not success:
mydepgraph.display_problems()
return 1
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
return (success, mydepgraph, favorites)
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.