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     ]