nix-store --serve: Suppress log output on stderr when repeating a build

This commit is contained in:
Eelco Dolstra 2016-12-06 17:43:39 +01:00
parent 6069b946ad
commit 7a3e7d0e61
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
3 changed files with 8 additions and 1 deletions

View file

@ -3047,7 +3047,8 @@ void DerivationGoal::handleEOF(int fd)
void DerivationGoal::flushLine()
{
if (settings.verboseBuild)
if (settings.verboseBuild &&
(settings.printRepeatedBuilds || curRound == 1))
printError(filterANSIEscapes(currentLogLine, true));
else {
logTail.push_back(currentLogLine);

View file

@ -149,6 +149,11 @@ struct Settings {
before being killed (0 means no limit). */
unsigned long maxLogSize;
/* When build-repeat > 0 and verboseBuild == true, whether to
print repeated builds (i.e. builds other than the first one) to
stderr. Hack to prevent Hydra logs from being polluted. */
bool printRepeatedBuilds = true;
/* How often (in seconds) to poll for locks. */
unsigned int pollInterval;

View file

@ -842,6 +842,7 @@ static void opServe(Strings opFlags, Strings opArgs)
settings.maxLogSize = readInt(in);
if (GET_PROTOCOL_MINOR(clientVersion) >= 3)
settings.set("build-repeat", std::to_string(readInt(in)));
settings.printRepeatedBuilds = false;
};
while (true) {