Как сохранить цвет при записи в стандартный вывод
#!/usr/bin/env stack
{- stack --install-ghc --resolver lts-8.8 runghc
-}
import System.IO
import System.Process
main = createProcess (proc "ls" [])
Хотя stdout
рассматривается Хаскеллом как tty, как hIsTerminalDevice stdout
возвращается True
, ls
не распознает это как таковое и не выводит цвета.
Есть ли способ обойти это или просто невозможно заставить работать цветной вывод на Haskell?
РЕДАКТИРОВАТЬ: чтобы быть ясно, я не хочу просто ls
работать, но весь спектр инструментов Unix, которые поддерживают вывод цвета, когда они идентифицируют stdout
как tty.
1 ответ
Решение
Ответ Хаскелл не виноват, я запутал свой собственный ls
, который был псевдоним ls --color=tty
,