{-# LANGUAGE NoImplicitPrelude #-}

module Stack.Options.HaddockParser where

import           Options.Applicative
import           Options.Applicative.Args
import           Stack.Options.Utils
import           Stack.Prelude
import           Stack.Types.Config

-- | Parser for haddock arguments.

haddockOptsParser :: Bool -> Parser HaddockOptsMonoid
haddockOptsParser :: Bool -> Parser HaddockOptsMonoid
haddockOptsParser Bool
hide0 =
  [String] -> HaddockOptsMonoid
HaddockOptsMonoid forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (forall a. a -> Maybe a -> a
fromMaybe [])
                             (forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional
                              (Mod OptionFields [String] -> Parser [String]
argsOption
                               (forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"haddock-arguments" forall a. Semigroup a => a -> a -> a
<>
                                forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"HADDOCK_ARGS" forall a. Semigroup a => a -> a -> a
<>
                                forall (f :: * -> *) a. String -> Mod f a
help String
"Arguments passed to the haddock program" forall a. Semigroup a => a -> a -> a
<>
                                forall {f :: * -> *} {a}. Mod f a
hide)))
  where hide :: Mod f a
hide = forall (f :: * -> *) a. Bool -> Mod f a
hideMods Bool
hide0