-
-
Notifications
You must be signed in to change notification settings - Fork 9.8k
Description
Symfony version(s) affected: 5.1.8
Description
ANSI color is stripped (command behaves if run with --no-ansi flag) from standard output when standard error is redirected.
How to reproduce
Pick any console app that issues output with ANSI color, and in a POSIX shell such as sh or bash, redirect standard error, e.g.:
bin/console some:command 2> /dev/null
Possible Solution
I would guess the *_isatty() check is being done on both stdout and stderr file descriptors and if either is not a TTY, the ANSI flag is wrongly cleared for both. Solution would be to check and manage the 2 file streams or descriptors separately.
Additional context
Explicitly adding the --ansi flag makes it work, e.g.:
bin/console --ansi some:command 2> /dev/null
correctly outputs the stdout text, such as [OK] message, in ANSI color.