Я пытаюсь перенаправить вывод дочернего процесса на $stdout
и захватить его одновременно.
Если я сначала перехватил вывод, а затем перенаправил его на $stdout
все цвета ANSIкоды теряются, потому что канал, используемый для захвата, не является TTY.
Есть ли способ заставить дочерний процесс думать, что он выводит на TTY?Я попытался использовать Open3.popen3
и подкласс StringIO
, который возвращает true
для #tty?
, но я получаю эту ошибку, потому что целью перенаправления должен быть файл, а не объект:
spawn': wrong exec redirect action (ArgumentError)