When a resume list is rejected, display the invalid resume list data
authorZac Medico <zmedico@gentoo.org>
Sat, 3 May 2008 23:11:54 +0000 (23:11 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 3 May 2008 23:11:54 +0000 (23:11 -0000)
in case the user is interested. This is enabled with --verbose or
--debug. (trunk r10145)

svn path=/main/branches/2.1.2/; revision=10146

bin/emerge

index 5077929622491d3701e580b81fa070096d28147c..864ac0be7370c2faa84ca9b19a79359c63730d85 100755 (executable)
@@ -4920,7 +4920,9 @@ class depgraph(object):
                favorites = resume_data.get("favorites")
                if isinstance(favorites, list):
                        self._load_favorites(resume_data)
-               mergelist = resume_data.get("mergelist", [])
+               mergelist = resume_data.get("mergelist")
+               if not isinstance(mergelist, list):
+                       mergelist = []
 
                if mergelist and "--skipfirst" in self.myopts:
                        for i, task in enumerate(mergelist):
@@ -7730,6 +7732,7 @@ def action_build(settings, trees, mtimedb,
                del myopts["--tree"]
                portage.writemsg(colorize("WARN", " * ") + \
                        "--tree is broken with --nodeps. Disabling...\n")
+       debug = "--debug" in myopts
        verbose = "--verbose" in myopts
        quiet = "--quiet" in myopts
        if pretend or fetchonly:
@@ -7791,6 +7794,19 @@ def action_build(settings, trees, mtimedb,
                        from output import EOutput
                        out = EOutput()
 
+                       resume_data = mtimedb["resume"]
+                       mergelist = resume_data.get("mergelist")
+                       if not isinstance(mergelist, list):
+                               mergelist = []
+                       if mergelist and debug or (verbose and not quiet):
+                               out.eerror("Invalid resume list:")
+                               out.eerror("")
+                               indent = "  "
+                               for task in mergelist:
+                                       if isinstance(task, list):
+                                               out.eerror(indent + str(tuple(task)))
+                               out.eerror("")
+
                        if isinstance(e, mydepgraph.UnsatisfiedResumeDep):
                                out.eerror("An expected dependency " + \
                                        "is not installed: %s" % str(e))