Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unexpected side affect of Ansi.isSupported checking terminal. #149

Open
bsutton opened this issue Jun 2, 2021 · 0 comments
Open

Unexpected side affect of Ansi.isSupported checking terminal. #149

bsutton opened this issue Jun 2, 2021 · 0 comments

Comments

@bsutton
Copy link
Collaborator

bsutton commented Jun 2, 2021

The method Ansi.isSupported checks if a ansi escape sequences are supported on the current terminal.

To make this more reliable it now checks if a terminal is attached by calling stdout.isTerminal.

This has worked well.

However there was an unexpected side effect.

If you run'

final list = start('some command', progress: Progress.capture()).toList();
print(list);

The previously the printed list included any ansi coloring.
With the new Ansi.isSupported check the output of any colour escape codes is suppressed because there is no terminal attached (we are capturing the output to a list).
This is not what I would normally want.
I'm think that we change the colour methods so the still output ansi escape sequences even if a terminal isn't attached.
This has the down side that we get colours logged to log files.
We do have the Ansi.strip() method that strips out colour which can be used as a filter when logging.

Discussion welcomed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant