module Stackctl.ColorOption ( ColorOption(..) , HasColorOption(..) , colorOption ) where import Stackctl.Prelude import Blammo.Logging.LogSettings import Data.Semigroup (Last(..)) import Options.Applicative newtype ColorOption = ColorOption { unColorOption :: LogColor } deriving Semigroup via Last ColorOption class HasColorOption env where colorOptionL :: Lens' env (Maybe ColorOption) colorOption :: Parser ColorOption colorOption = option (eitherReader $ fmap ColorOption . readLogColor) $ mconcat [long "color", help "When to colorize output", metavar "auto|always|never"]