libstore/build: add a few explanatory comments; simplify

This commit is contained in:
Maximilian Bosch 2022-02-20 16:02:44 +01:00
parent 287642f132
commit 102cb39086
No known key found for this signature in database
GPG key ID: 091DBF4D1FC46B8E

View file

@ -1177,6 +1177,7 @@ bool DerivationGoal::isReadDesc(int fd)
void DerivationGoal::handleChildOutput(int fd, std::string_view data)
{
// local & `ssh://`-builds are dealt with here.
auto isWrittenToLog = isReadDesc(fd);
if (isWrittenToLog)
{
@ -1210,13 +1211,13 @@ void DerivationGoal::handleChildOutput(int fd, std::string_view data)
auto json = parseJSONMessage(currentHookLine);
if (json) {
auto s = handleJSONLogMessage(*json, worker.act, hook->activities, true);
if (s && !isWrittenToLog && logSink) {
if ((*json)["type"] == resBuildLogLine) {
// ensure that logs from a builder using `ssh-ng://` as protocol
// are also available to `nix log`.
if (s && !isWrittenToLog && logSink && (*json)["type"] == resBuildLogLine) {
auto f = (*json)["fields"];
(*logSink)((f.size() > 0 ? f.at(0).get<std::string>() : "") + "\n");
}
}
}
currentHookLine.clear();
} else
currentHookLine += c;