feat(tvix): Thread a log sink through calls to buildDerivation

Similarly to how we did for buildPaths, add a std::ostream& log_sink
parameter to the build_derivation method on Store, and pass it std::cerr
when called at the top level by nix commands - most notably, the
build-remote hook binary, so that we get build logs when using tvix as a
remote builder.

Change-Id: I0f8f729ba8429d4838a0a135a5c2ac1e1a95d575
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2176
Tested-by: BuildkiteCI
Reviewed-by: andi <andi@notmuch.email>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
This commit is contained in:
Griffin Smith 2020-11-27 18:12:44 -05:00 committed by glittershark
parent 1d22874ab2
commit 49024be056
13 changed files with 31 additions and 18 deletions

View file

@ -246,7 +246,7 @@ static int _main(int argc, char* argv[]) {
readDerivation(store->realStoreDir + "/" + baseNameOf(drvPath)));
drv.inputSrcs = inputs;
auto result = sshStore->buildDerivation(drvPath, drv);
auto result = sshStore->buildDerivation(std::cerr, drvPath, drv);
if (!result.success()) {
throw Error("build of '%s' on '%s' failed: %s", drvPath, storeUri,