module Logging.Bock.Color (supportsColor) where

import qualified GHC.IO.Handle as IO
import qualified System.Posix.IO as Posix
import qualified System.Posix.Terminal as Posix

supportsColor :: IO.Handle -> IO Bool
supportsColor original = do
  -- we need to duplicate the handle before turning it into an FD as
  -- converting it to an FD will clone it, and that's... not what we
  -- want
  handle <- IO.hDuplicate original
  fd <- Posix.handleToFd handle
  Posix.queryTerminal fd
