Add some color

This commit is contained in:
Eelco Dolstra 2014-08-20 16:01:16 +02:00
parent 392430b2c4
commit 373fad75e1
6 changed files with 56 additions and 52 deletions

View file

@ -2441,42 +2441,6 @@ void DerivationGoal::deleteTmpDir(bool force)
}
/* Filter out the special ANSI escape codes generated by Nixpkgs'
stdenv (used to denote nesting etc.). */
static string filterNixEscapes(const string & s)
{
string t, r;
enum { stTop, stEscape, stCSI } state = stTop;
for (auto c : s) {
if (state == stTop) {
if (c == '\e') {
state = stEscape;
r = c;
} else
t += c;
} else if (state == stEscape) {
r += c;
if (c == '[')
state = stCSI;
else {
t += r;
state = stTop;
}
} else {
r += c;
if (c >= 0x40 && c != 0x7e) {
if (c != 'p' && c != 'q' && c != 's' && c != 'a' && c != 'b')
t += r;
state = stTop;
r.clear();
}
}
}
t += r;
return t;
}
void DerivationGoal::handleChildOutput(int fd, const string & data)
{
if ((hook && fd == hook->builderOut.readSide) ||
@ -2491,7 +2455,7 @@ void DerivationGoal::handleChildOutput(int fd, const string & data)
return;
}
if (verbosity >= settings.buildVerbosity)
writeToStderr(filterNixEscapes(data));
writeToStderr(filterANSIEscapes(data, true));
if (bzLogFile) {
int err;
BZ2_bzWrite(&err, bzLogFile, (unsigned char *) data.data(), data.size());