1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-12-22 17:01:08 +01:00

Merge pull request #10131 from intelfx/work/notty

`TERM=dumb` fixes
This commit is contained in:
Théophane Hufschmitt 2024-03-29 13:38:37 +01:00 committed by GitHub
commit 90f5189451
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 28 additions and 18 deletions

View file

@ -123,14 +123,18 @@ public:
}
void pause() override {
state_.lock()->paused = true;
writeToStderr("\r\e[K");
auto state (state_.lock());
state->paused = true;
if (state->active)
writeToStderr("\r\e[K");
}
void resume() override {
state_.lock()->paused = false;
writeToStderr("\r\e[K");
state_.lock()->haveUpdate = true;
auto state (state_.lock());
state->paused = false;
if (state->active)
writeToStderr("\r\e[K");
state->haveUpdate = true;
updateCV.notify_one();
}
@ -162,9 +166,7 @@ public:
writeToStderr("\r\e[K" + filterANSIEscapes(s, !isTTY) + ANSI_NORMAL "\n");
draw(state);
} else {
auto s2 = s + ANSI_NORMAL "\n";
if (!isTTY) s2 = filterANSIEscapes(s2, true);
writeToStderr(s2);
writeToStderr(filterANSIEscapes(s, !isTTY) + "\n");
}
}
@ -519,7 +521,7 @@ public:
std::optional<char> ask(std::string_view msg) override
{
auto state(state_.lock());
if (!state->active || !isatty(STDIN_FILENO)) return {};
if (!state->active) return {};
std::cerr << fmt("\r\e[K%s ", msg);
auto s = trim(readLine(STDIN_FILENO));
if (s.size() != 1) return {};
@ -535,7 +537,7 @@ public:
Logger * makeProgressBar()
{
return new ProgressBar(shouldANSI());
return new ProgressBar(isTTY());
}
void startProgressBar()