{-# LANGUAGE OverloadedStrings #-}

module ColorOption
  ( ColorWhen(..)
  , shouldUseColor
  ) where

import Types (ColorWhen(..))
import System.IO (hIsTerminalDevice, stdout)

-- | Determine if color should be used based on the color option
shouldUseColor :: ColorWhen -> IO Bool
shouldUseColor :: ColorWhen -> IO Bool
shouldUseColor ColorWhen
Always = Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
True
shouldUseColor ColorWhen
Never = Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
False
shouldUseColor ColorWhen
Auto = Handle -> IO Bool
hIsTerminalDevice Handle
stdout