module Stack.DefaultColorWhen
( defaultColorWhen
) where
import Stack.Prelude (stdout)
import Stack.Types.Config (ColorWhen (ColorAuto, ColorNever))
import System.Console.ANSI (hSupportsANSIWithoutEmulation)
import System.Environment (lookupEnv)
defaultColorWhen :: IO ColorWhen
defaultColorWhen = do
supportsANSI <- hSupportsANSIWithoutEmulation stdout
mIsNoColor <- lookupEnv "NO_COLOR"
return $ case mIsNoColor of
Just _ -> ColorNever
_ -> case supportsANSI of
Just False -> ColorNever
_ -> ColorAuto