{-# 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
{ ManpageFlags -> Flag Verbosity
manpageVerbosity :: Flag Verbosity
, :: Flag Bool
} deriving (ManpageFlags -> ManpageFlags -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ManpageFlags -> ManpageFlags -> Bool
$c/= :: ManpageFlags -> ManpageFlags -> Bool
== :: ManpageFlags -> ManpageFlags -> Bool
$c== :: ManpageFlags -> ManpageFlags -> Bool
Eq, Int -> ManpageFlags -> ShowS
[ManpageFlags] -> ShowS
ManpageFlags -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ManpageFlags] -> ShowS
$cshowList :: [ManpageFlags] -> ShowS
show :: ManpageFlags -> String
$cshow :: ManpageFlags -> String
showsPrec :: Int -> ManpageFlags -> ShowS
$cshowsPrec :: Int -> ManpageFlags -> ShowS
Show, forall x. Rep ManpageFlags x -> ManpageFlags
forall x. ManpageFlags -> Rep ManpageFlags x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ManpageFlags x -> ManpageFlags
$cfrom :: forall x. ManpageFlags -> Rep ManpageFlags x
Generic)
instance Monoid ManpageFlags where
mempty :: ManpageFlags
mempty = forall a. (Generic a, GMonoid (Rep a)) => a
gmempty
mappend :: ManpageFlags -> ManpageFlags -> ManpageFlags
mappend = forall a. Semigroup a => a -> a -> a
(<>)
instance Semigroup ManpageFlags where
<> :: ManpageFlags -> ManpageFlags -> ManpageFlags
(<>) = forall a. (Generic a, GSemigroup (Rep a)) => a -> a -> a
gmappend
defaultManpageFlags :: ManpageFlags
defaultManpageFlags :: ManpageFlags
defaultManpageFlags = ManpageFlags
{ manpageVerbosity :: Flag Verbosity
manpageVerbosity = forall a. a -> Flag a
toFlag Verbosity
normal
, manpageRaw :: Flag Bool
manpageRaw = forall a. a -> Flag a
toFlag Bool
False
}
manpageOptions :: ShowOrParseArgs -> [OptionField ManpageFlags]
manpageOptions :: ShowOrParseArgs -> [OptionField ManpageFlags]
manpageOptions ShowOrParseArgs
_ =
[ forall flags.
(flags -> Flag Verbosity)
-> (Flag Verbosity -> flags -> flags) -> OptionField flags
optionVerbosity ManpageFlags -> Flag Verbosity
manpageVerbosity (\Flag Verbosity
v ManpageFlags
flags -> ManpageFlags
flags { manpageVerbosity :: Flag Verbosity
manpageVerbosity = Flag Verbosity
v })
, forall get set a.
String
-> LFlags
-> String
-> get
-> set
-> MkOptDescr get set a
-> OptionField a
option String
"" [String
"raw"]
String
"Output raw troff content"
ManpageFlags -> Flag Bool
manpageRaw (\Flag Bool
v ManpageFlags
flags -> ManpageFlags
flags { manpageRaw :: Flag Bool
manpageRaw = Flag Bool
v })
forall a. MkOptDescr (a -> Flag Bool) (Flag Bool -> a -> a) a
trueArg
]