summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2015-06-10 16:17:06 +0200
committerLudovic Courtès <ludo@gnu.org>2015-07-02 22:52:58 +0200
commit60bda60fc06135aa97a93301b1a9e2270768f5b3 (patch)
treec808dbddfc267f0ca070cfe17ea811fc311c2583
parent5dfea34048aa8541f20aeb2fbcd163561b609a49 (diff)
downloadguix-60bda60fc06135aa97a93301b1a9e2270768f5b3.tar.gz
Export outputPaths function
This is useful for the new hydra-queue-runner.
-rw-r--r--nix/libstore/build.cc13
-rw-r--r--nix/libstore/derivations.cc9
-rw-r--r--nix/libstore/derivations.hh1
3 files changed, 12 insertions, 11 deletions
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index 7159d7b4c4..9041ae0095 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -1188,15 +1188,6 @@ void DerivationGoal::inputsRealised()
 }
 
 
-PathSet outputPaths(const DerivationOutputs & outputs)
-{
-    PathSet paths;
-    foreach (DerivationOutputs::const_iterator, i, outputs)
-        paths.insert(i->second.path);
-    return paths;
-}
-
-
 static bool canBuildLocally(const string & platform)
 {
     return platform == settings.thisSystem
@@ -1248,7 +1239,7 @@ void DerivationGoal::tryToBuild()
        can't acquire the lock, then continue; hopefully some other
        goal can start a build, and if not, the main loop will sleep a
        few seconds and then retry this goal. */
-    if (!outputLocks.lockPaths(outputPaths(drv.outputs), "", false)) {
+    if (!outputLocks.lockPaths(outputPaths(drv), "", false)) {
         worker.waitForAWhile(shared_from_this());
         return;
     }
@@ -1269,7 +1260,7 @@ void DerivationGoal::tryToBuild()
         return;
     }
 
-    missingPaths = outputPaths(drv.outputs);
+    missingPaths = outputPaths(drv);
     if (buildMode != bmCheck)
         foreach (PathSet::iterator, i, validPaths) missingPaths.erase(*i);
 
diff --git a/nix/libstore/derivations.cc b/nix/libstore/derivations.cc
index b452aa2caf..d316f6c7bf 100644
--- a/nix/libstore/derivations.cc
+++ b/nix/libstore/derivations.cc
@@ -285,4 +285,13 @@ bool wantOutput(const string & output, const std::set<string> & wanted)
 }
 
 
+PathSet outputPaths(const Derivation & drv)
+{
+    PathSet paths;
+    for (auto & i : drv.outputs)
+        paths.insert(i.second.path);
+    return paths;
+}
+
+
 }
diff --git a/nix/libstore/derivations.hh b/nix/libstore/derivations.hh
index 04b64dfc88..8d5e4d05d4 100644
--- a/nix/libstore/derivations.hh
+++ b/nix/libstore/derivations.hh
@@ -89,5 +89,6 @@ Path makeDrvPathWithOutputs(const Path & drvPath, const std::set<string> & outpu
 
 bool wantOutput(const string & output, const std::set<string> & wanted);
 
+PathSet outputPaths(const Derivation & drv);
 
 }