Properly bypass the registering step when all outputs are present
There was already some logic for that, but it didn't handle the case of content-addressed outputs, so extend it a bit for that
This commit is contained in:
parent
69666b951e
commit
527da73690
1 changed files with 3 additions and 3 deletions
|
@ -3001,11 +3001,11 @@ void DerivationGoal::registerOutputs()
|
||||||
*/
|
*/
|
||||||
if (hook) {
|
if (hook) {
|
||||||
bool allValid = true;
|
bool allValid = true;
|
||||||
for (auto & i : drv->outputsAndOptPaths(worker.store)) {
|
for (auto & [outputName, outputPath] : worker.store.queryPartialDerivationOutputMap(drvPath)) {
|
||||||
if (!i.second.second || !worker.store.isValidPath(*i.second.second))
|
if (!outputPath || !worker.store.isValidPath(*outputPath))
|
||||||
allValid = false;
|
allValid = false;
|
||||||
else
|
else
|
||||||
finalOutputs.insert_or_assign(i.first, *i.second.second);
|
finalOutputs.insert_or_assign(outputName, *outputPath);
|
||||||
}
|
}
|
||||||
if (allValid) return;
|
if (allValid) return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue