never executed always true always false
1 {-# LANGUAGE DeriveGeneric #-}
2 {-# LANGUAGE LambdaCase #-}
3 module Distribution.Client.ManpageFlags
4 ( ManpageFlags (..)
5 , defaultManpageFlags
6 , manpageOptions,
7 ) where
8
9 import Distribution.Client.Compat.Prelude
10
11 import Distribution.Simple.Command (OptionField (..), ShowOrParseArgs (..), option)
12 import Distribution.Simple.Setup (Flag (..), toFlag, trueArg, optionVerbosity)
13 import Distribution.Verbosity (normal)
14
15 data ManpageFlags = ManpageFlags
16 { manpageVerbosity :: Flag Verbosity
17 , manpageRaw :: Flag Bool
18 } deriving (Eq, Show, Generic)
19
20 instance Monoid ManpageFlags where
21 mempty = gmempty
22 mappend = (<>)
23
24 instance Semigroup ManpageFlags where
25 (<>) = gmappend
26
27 defaultManpageFlags :: ManpageFlags
28 defaultManpageFlags = ManpageFlags
29 { manpageVerbosity = toFlag normal
30 , manpageRaw = toFlag False
31 }
32
33 manpageOptions :: ShowOrParseArgs -> [OptionField ManpageFlags]
34 manpageOptions _ =
35 [ optionVerbosity manpageVerbosity (\v flags -> flags { manpageVerbosity = v })
36 , option "" ["raw"]
37 "Output raw troff content"
38 manpageRaw (\v flags -> flags { manpageRaw = v })
39 trueArg
40 ]