Я использую команду go exec Run для получения выходных данных команды, которая прекрасно работает, когда в поле команды 'Stdout' установлено значение os.Stdout
, а ошибка отправляется на os.Stderr
.
IЯ хочу, чтобы вывод и вывод ошибок выводились на консоль, но я также хочу, чтобы моя программа видела вывод.
Затем я создал свой собственный тип Writer, который делал именно это, записывал и в буфер, ираспечатывается на терминал.
Вот проблема: некоторые приложения изменяют свой вывод на что-то гораздо менее читаемое людьми, когда обнаруживает, что оно не пишет в tty.Таким образом, вывод, который я получаю, меняется на что-то безобразное, когда я делаю это последним способом.(очиститель для компьютеров, уродливее для людей)
Я хотел бы знать, есть ли какой-то способ в Go убедить любую команду, которую я запускаю, в том, что я tty, несмотря на то, что я не os.Stdout/os.Stderr
.Я знаю, что это можно сделать с помощью команды script
bash, но она использует другой флаг в зависимости от Darwin / Linux, поэтому я стараюсь этого избегать.
Заранее спасибо!