Export outputPaths function

This is useful for the new hydra-queue-runner.
This commit is contained in:
Eelco Dolstra 2015-06-10 16:17:06 +02:00
parent f90e9b65d6
commit b65875f859
3 changed files with 12 additions and 11 deletions

View file

@ -1187,15 +1187,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) static bool canBuildLocally(const string & platform)
{ {
return platform == settings.thisSystem return platform == settings.thisSystem
@ -1247,7 +1238,7 @@ void DerivationGoal::tryToBuild()
can't acquire the lock, then continue; hopefully some other can't acquire the lock, then continue; hopefully some other
goal can start a build, and if not, the main loop will sleep a goal can start a build, and if not, the main loop will sleep a
few seconds and then retry this goal. */ 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()); worker.waitForAWhile(shared_from_this());
return; return;
} }
@ -1268,7 +1259,7 @@ void DerivationGoal::tryToBuild()
return; return;
} }
missingPaths = outputPaths(drv.outputs); missingPaths = outputPaths(drv);
if (buildMode != bmCheck) if (buildMode != bmCheck)
foreach (PathSet::iterator, i, validPaths) missingPaths.erase(*i); foreach (PathSet::iterator, i, validPaths) missingPaths.erase(*i);

View file

@ -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;
}
} }

View file

@ -89,5 +89,6 @@ Path makeDrvPathWithOutputs(const Path & drvPath, const std::set<string> & outpu
bool wantOutput(const string & output, const std::set<string> & wanted); bool wantOutput(const string & output, const std::set<string> & wanted);
PathSet outputPaths(const Derivation & drv);
} }