Встряхнуть: Наследовать stderr

Используя Shake, я вызываю cdparanoia. cdparanoia выводит полезный индикатор выполнения (включая графику для отображения проблем), когда его stderr подключен к терминалу; но не иначе. --stderr-progress вызывает некоторый вывод прогресса, но это не так полезно, и для его интерпретации потребуется часть работы.

Я хотел бы запустить команду cdparanoia с ее stderr, унаследованным напрямую (или иным образом связанным с /dev/tty). Я пытался использовать параметр FileStderr, установленный на /dev/tty, но это не помогает — я думаю, shake все еще всасывает stderr, а затем передает его в /dev/tty.

Есть ли способ убедить встряхнуть запустить команду с действительно унаследованным stderr? Или я должен использовать для этого System.Process (или аналогичный)?

Ваше здоровье,


person user3416536    schedule 16.09.2019    source источник


Ответы (1)


На данный момент вам нужно использовать System.Process, но вполне возможно, что Shake может предложить способ наследования дескрипторов. Причина, по которой Shake в настоящее время не предлагает наследование, заключается в том, что могут произойти плохие вещи, если вы запустите два одновременных унаследованных процесса.

person Neil Mitchell    schedule 16.09.2019
comment
честно говоря, это было бы проблематично. Хорошо, доки, у меня работает System.Process версия, и теперь я буду меньше чувствовать, что я что-то пропустил. Спасибо, Нил! - person user3416536; 16.09.2019