stackctl-1.1.0.0: src/Stackctl/ColorOption.hs
module Stackctl.ColorOption
( LogColor(..)
, HasColorOption(..)
, colorOption
, colorHandle
) where
import Stackctl.Prelude
import Blammo.Logging.LogSettings
import Options.Applicative
class HasColorOption env where
colorOptionL :: Lens' env LogColor
instance HasColorOption LogColor where
colorOptionL = id
colorOption :: Parser LogColor
colorOption = option (eitherReader readLogColor) $ mconcat
[ long "color"
, help "When to colorize output"
, metavar "auto|always|never"
, value LogColorAuto
, showDefaultWith showLogColor
]
showLogColor :: LogColor -> String
showLogColor = \case
LogColorAuto -> "auto"
LogColorAlways -> "always"
LogColorNever -> "never"
colorHandle :: MonadIO m => Handle -> LogColor -> m Bool
colorHandle h lc = shouldColorHandle settings h
where settings = setLogSettingsColor lc defaultLogSettings