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
|
@ -3001,11 +3001,11 @@ void DerivationGoal::registerOutputs()
|
|||
*/
|
||||
if (hook) {
|
||||
bool allValid = true;
|
||||
for (auto & i : drv->outputsAndOptPaths(worker.store)) {
|
||||
if (!i.second.second || !worker.store.isValidPath(*i.second.second))
|
||||
for (auto & [outputName, outputPath] : worker.store.queryPartialDerivationOutputMap(drvPath)) {
|
||||
if (!outputPath || !worker.store.isValidPath(*outputPath))
|
||||
allValid = false;
|
||||
else
|
||||
finalOutputs.insert_or_assign(i.first, *i.second.second);
|
||||
finalOutputs.insert_or_assign(outputName, *outputPath);
|
||||
}
|
||||
if (allValid) return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue