cabal-install-3.6.0.0: src/Distribution/Client/ManpageFlags.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE LambdaCase #-}
module Distribution.Client.ManpageFlags
( ManpageFlags (..)
, defaultManpageFlags
, manpageOptions,
) where
import Distribution.Client.Compat.Prelude
import Distribution.Simple.Command (OptionField (..), ShowOrParseArgs (..), option)
import Distribution.Simple.Setup (Flag (..), toFlag, trueArg, optionVerbosity)
import Distribution.Verbosity (normal)
data ManpageFlags = ManpageFlags
{ manpageVerbosity :: Flag Verbosity
, manpageRaw :: Flag Bool
} deriving (Eq, Show, Generic)
instance Monoid ManpageFlags where
mempty = gmempty
mappend = (<>)
instance Semigroup ManpageFlags where
(<>) = gmappend
defaultManpageFlags :: ManpageFlags
defaultManpageFlags = ManpageFlags
{ manpageVerbosity = toFlag normal
, manpageRaw = toFlag False
}
manpageOptions :: ShowOrParseArgs -> [OptionField ManpageFlags]
manpageOptions _ =
[ optionVerbosity manpageVerbosity (\v flags -> flags { manpageVerbosity = v })
, option "" ["raw"]
"Output raw troff content"
manpageRaw (\v flags -> flags { manpageRaw = v })
trueArg
]