opt-env-conf-0.11.1.0: src/OptEnvConf/Terminal.hs
{-# LANGUAGE CPP #-}
module OptEnvConf.Terminal
( getTerminalCapabilitiesFromHandle,
)
where
#if !defined(mingw32_HOST_OS)
import Text.Colour.Capabilities.FromEnv (getTerminalCapabilitiesFromHandle)
#else
import System.IO (Handle, hIsTerminalDevice)
import Text.Colour.Capabilities (TerminalCapabilities (..))
getTerminalCapabilitiesFromHandle :: Handle -> IO TerminalCapabilities
getTerminalCapabilitiesFromHandle h = do
isTerm <- hIsTerminalDevice h
pure $ if isTerm then With8BitColours else WithoutColours
-- Note: This may be conservative. Modern Windows terminals (Windows 10+)
-- support 24-bit RGB colors when VT processing is enabled.
#endif