guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

232/376: printMissing(): Print derivations in approximate build order


From: Ludovic Courtès
Subject: 232/376: printMissing(): Print derivations in approximate build order
Date: Wed, 28 Jan 2015 22:05:16 +0000

civodul pushed a commit to tag 1.8
in repository guix.

commit f77be20c16621a8e6b91f95cad9711b87d113485
Author: Eelco Dolstra <address@hidden>
Date:   Fri Sep 26 14:09:20 2014 +0200

    printMissing(): Print derivations in approximate build order
---
 src/libmain/shared.cc |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc
index 6f2f8c5..8a6b7a9 100644
--- a/src/libmain/shared.cc
+++ b/src/libmain/shared.cc
@@ -9,6 +9,7 @@
 #include <iostream>
 #include <cctype>
 #include <exception>
+#include <algorithm>
 
 #include <sys/time.h>
 #include <sys/stat.h>
@@ -58,23 +59,25 @@ void printMissing(const PathSet & willBuild,
 {
     if (!willBuild.empty()) {
         printMsg(lvlInfo, format("these derivations will be built:"));
-        foreach (PathSet::iterator, i, willBuild)
-            printMsg(lvlInfo, format("  %1%") % *i);
+        Paths sorted = topoSortPaths(*store, willBuild);
+        reverse(sorted.begin(), sorted.end());
+        for (auto & i : sorted)
+            printMsg(lvlInfo, format("  %1%") % i);
     }
 
     if (!willSubstitute.empty()) {
         printMsg(lvlInfo, format("these paths will be fetched (%.2f MiB 
download, %.2f MiB unpacked):")
             % (downloadSize / (1024.0 * 1024.0))
             % (narSize / (1024.0 * 1024.0)));
-        foreach (PathSet::iterator, i, willSubstitute)
-            printMsg(lvlInfo, format("  %1%") % *i);
+        for (auto & i : willSubstitute)
+            printMsg(lvlInfo, format("  %1%") % i);
     }
 
     if (!unknown.empty()) {
         printMsg(lvlInfo, format("don't know how to build these paths%1%:")
             % (settings.readOnlyMode ? " (may be caused by read-only store 
access)" : ""));
-        foreach (PathSet::iterator, i, unknown)
-            printMsg(lvlInfo, format("  %1%") % *i);
+        for (auto & i : unknown)
+            printMsg(lvlInfo, format("  %1%") % i);
     }
 }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]