forked from lix-project/lix
LocalStore: Send back the new realisations
To allow it to build ca derivations remotely
This commit is contained in:
parent
6fbf3fe636
commit
5687564a27
|
@ -58,6 +58,26 @@ BuildResult Store::buildDerivation(const StorePath & drvPath, const BasicDerivat
|
||||||
result.status = BuildResult::MiscFailure;
|
result.status = BuildResult::MiscFailure;
|
||||||
result.errorMsg = e.msg();
|
result.errorMsg = e.msg();
|
||||||
}
|
}
|
||||||
|
// XXX: Should use `goal->queryPartialDerivationOutputMap()` once it's
|
||||||
|
// extended to return the full realisation for each output
|
||||||
|
auto staticDrvOutputs = drv.outputsAndOptPaths(*this);
|
||||||
|
auto outputHashes = staticOutputHashes(*this, drv);
|
||||||
|
for (auto & [outputName, staticOutput] : staticDrvOutputs) {
|
||||||
|
auto outputId = DrvOutput{outputHashes.at(outputName), outputName};
|
||||||
|
if (staticOutput.second)
|
||||||
|
result.builtOutputs.insert_or_assign(
|
||||||
|
outputId,
|
||||||
|
Realisation{ outputId, *staticOutput.second}
|
||||||
|
);
|
||||||
|
if (settings.isExperimentalFeatureEnabled("ca-derivations")) {
|
||||||
|
auto realisation = this->queryRealisation(outputId);
|
||||||
|
if (realisation)
|
||||||
|
result.builtOutputs.insert_or_assign(
|
||||||
|
outputId,
|
||||||
|
*realisation
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue