{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NoFieldSelectors #-}
{-# LANGUAGE OverloadedRecordDot #-}
{-# LANGUAGE OverloadedStrings #-}
module Stack.Types.ConfigMonoid
( ConfigMonoid (..)
, parseConfigMonoid
, parseConfigMonoidObject
, configMonoidAllowDifferentUserName
, configMonoidGHCVariantName
, configMonoidInstallGHCName
, configMonoidSystemGHCName
) where
import Data.Aeson.Types ( Object, Value )
import Data.Aeson.WarningParser
( WarningParser, WithJSONWarnings, (..:?), (..!=)
, jsonSubWarnings, jsonSubWarningsT, jsonSubWarningsTT
, withObjectWarnings
)
import Casa.Client ( CasaRepoPrefix )
import Control.Monad.Writer ( tell )
import Data.Coerce ( coerce )
import qualified Data.Map as Map
import qualified Data.Map.Strict as M
import qualified Data.Monoid as Monoid
import Data.Monoid.Map ( MonoidMap (..) )
import qualified Data.Yaml as Yaml
import Distribution.Version ( anyVersion )
import Generics.Deriving.Monoid ( mappenddefault, memptydefault )
import Stack.Prelude hiding ( snapshotLocation )
import Stack.Types.AllowNewerDeps ( AllowNewerDeps )
import Stack.Types.ApplyGhcOptions ( ApplyGhcOptions (..) )
import Stack.Types.ApplyProgOptions ( ApplyProgOptions (..) )
import Stack.Types.BuildOptsMonoid ( BuildOptsMonoid )
import Stack.Types.Casa ( CasaOptsMonoid )
import Stack.Types.CabalConfigKey ( CabalConfigKey )
import Stack.Types.ColorWhen ( ColorWhen )
import Stack.Types.Compiler ( CompilerRepository )
import Stack.Types.CompilerBuild ( CompilerBuild )
import Stack.Types.Docker ( DockerOptsMonoid, VersionRangeJSON (..) )
import Stack.Types.DumpLogs ( DumpLogs )
import Stack.Types.GhcOptionKey ( GhcOptionKey (..) )
import Stack.Types.GhcOptions ( GhcOptions (..) )
import Stack.Types.GHCVariant ( GHCVariant )
import Stack.Types.Nix ( NixOptsMonoid )
import Stack.Types.PvpBounds ( PvpBounds )
import Stack.Types.SCM ( SCM )
import Stack.Types.SetupInfo ( SetupInfo )
import Stack.Types.TemplateName ( TemplateName )
import Stack.Types.Version
( IntersectingVersionRange (..), VersionCheck )
import qualified System.FilePath as FilePath
data ConfigMonoid = ConfigMonoid
{ ConfigMonoid -> First (Path Abs Dir)
stackRoot :: !(First (Path Abs Dir))
, ConfigMonoid -> First (Path Rel Dir)
workDir :: !(First (Path Rel Dir))
, ConfigMonoid -> BuildOptsMonoid
buildOpts :: !BuildOptsMonoid
, ConfigMonoid -> DockerOptsMonoid
dockerOpts :: !DockerOptsMonoid
, ConfigMonoid -> NixOptsMonoid
nixOpts :: !NixOptsMonoid
, ConfigMonoid -> First Int
connectionCount :: !(First Int)
, ConfigMonoid -> FirstTrue
hideTHLoading :: !FirstTrue
, ConfigMonoid -> First Bool
prefixTimestamps :: !(First Bool)
, ConfigMonoid -> First Text
latestSnapshot :: !(First Text)
, ConfigMonoid -> First PackageIndexConfig
packageIndex :: !(First PackageIndexConfig)
, ConfigMonoid -> First [PackageIndexConfig]
packageIndices :: !(First [PackageIndexConfig])
, ConfigMonoid -> First Bool
systemGHC :: !(First Bool)
, ConfigMonoid -> FirstTrue
installGHC :: !FirstTrue
, ConfigMonoid -> FirstFalse
skipGHCCheck :: !FirstFalse
, ConfigMonoid -> FirstFalse
skipMsys :: !FirstFalse
, ConfigMonoid -> First VersionCheck
compilerCheck :: !(First VersionCheck)
, ConfigMonoid -> First CompilerRepository
compilerRepository :: !(First CompilerRepository)
, ConfigMonoid -> IntersectingVersionRange
requireStackVersion :: !IntersectingVersionRange
, ConfigMonoid -> First String
arch :: !(First String)
, ConfigMonoid -> First GHCVariant
ghcVariant :: !(First GHCVariant)
, ConfigMonoid -> First CompilerBuild
ghcBuild :: !(First CompilerBuild)
, ConfigMonoid -> First Int
jobs :: !(First Int)
, :: ![FilePath]
, :: ![FilePath]
, ConfigMonoid -> [Text]
customPreprocessorExts :: ![Text]
, ConfigMonoid -> First (Path Abs File)
overrideGccPath :: !(First (Path Abs File))
, ConfigMonoid -> First String
overrideHpack :: !(First FilePath)
, ConfigMonoid -> First Bool
concurrentTests :: !(First Bool)
, ConfigMonoid -> First String
localBinPath :: !(First FilePath)
, ConfigMonoid -> Map Text Text
templateParameters :: !(Map Text Text)
, ConfigMonoid -> First SCM
scmInit :: !(First SCM)
, ConfigMonoid -> MonoidMap PackageName (Dual [Text])
ghcOptionsByName :: !(MonoidMap PackageName (Monoid.Dual [Text]))
, ConfigMonoid -> MonoidMap ApplyGhcOptions (Dual [Text])
ghcOptionsByCat :: !(MonoidMap ApplyGhcOptions (Monoid.Dual [Text]))
, ConfigMonoid -> MonoidMap CabalConfigKey (Dual [Text])
cabalConfigOpts :: !(MonoidMap CabalConfigKey (Monoid.Dual [Text]))
, :: ![Path Abs Dir]
, ConfigMonoid -> [String]
setupInfoLocations :: ![String]
, ConfigMonoid -> SetupInfo
setupInfoInline :: !SetupInfo
, ConfigMonoid -> First (Path Abs Dir)
localProgramsBase :: !(First (Path Abs Dir))
, ConfigMonoid -> First PvpBounds
pvpBounds :: !(First PvpBounds)
, ConfigMonoid -> FirstTrue
modifyCodePage :: !FirstTrue
, ConfigMonoid -> FirstFalse
rebuildGhcOptions :: !FirstFalse
, ConfigMonoid -> First ApplyGhcOptions
applyGhcOptions :: !(First ApplyGhcOptions)
, ConfigMonoid -> First ApplyProgOptions
applyProgOptions :: !(First ApplyProgOptions)
, ConfigMonoid -> First Bool
allowNewer :: !(First Bool)
, ConfigMonoid -> Maybe AllowNewerDeps
allowNewerDeps :: !(Maybe AllowNewerDeps)
, ConfigMonoid -> First TemplateName
defaultTemplate :: !(First TemplateName)
, ConfigMonoid -> First Bool
allowDifferentUser :: !(First Bool)
, ConfigMonoid -> First DumpLogs
dumpLogs :: !(First DumpLogs)
, ConfigMonoid -> First Bool
saveHackageCreds :: !(First Bool)
, ConfigMonoid -> First Text
hackageBaseUrl :: !(First Text)
, ConfigMonoid -> First ColorWhen
colorWhen :: !(First ColorWhen)
, ConfigMonoid -> StylesUpdate
styles :: !StylesUpdate
, ConfigMonoid -> FirstTrue
hideSourcePaths :: !FirstTrue
, ConfigMonoid -> FirstTrue
recommendUpgrade :: !FirstTrue
, ConfigMonoid -> FirstTrue
notifyIfNixOnPath :: !FirstTrue
, ConfigMonoid -> FirstTrue
notifyIfGhcUntested :: !FirstTrue
, ConfigMonoid -> FirstTrue
notifyIfCabalUntested :: !FirstTrue
, ConfigMonoid -> FirstTrue
notifyIfArchUnknown :: !FirstTrue
, ConfigMonoid -> CasaOptsMonoid
casaOpts :: !CasaOptsMonoid
, ConfigMonoid -> First CasaRepoPrefix
casaRepoPrefix :: !(First CasaRepoPrefix)
, ConfigMonoid -> First Text
snapshotLocation :: !(First Text)
, ConfigMonoid -> FirstFalse
noRunCompile :: !FirstFalse
, ConfigMonoid -> First Bool
stackDeveloperMode :: !(First Bool)
}
deriving ((forall x. ConfigMonoid -> Rep ConfigMonoid x)
-> (forall x. Rep ConfigMonoid x -> ConfigMonoid)
-> Generic ConfigMonoid
forall x. Rep ConfigMonoid x -> ConfigMonoid
forall x. ConfigMonoid -> Rep ConfigMonoid x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ConfigMonoid -> Rep ConfigMonoid x
from :: forall x. ConfigMonoid -> Rep ConfigMonoid x
$cto :: forall x. Rep ConfigMonoid x -> ConfigMonoid
to :: forall x. Rep ConfigMonoid x -> ConfigMonoid
Generic, Int -> ConfigMonoid -> ShowS
[ConfigMonoid] -> ShowS
ConfigMonoid -> String
(Int -> ConfigMonoid -> ShowS)
-> (ConfigMonoid -> String)
-> ([ConfigMonoid] -> ShowS)
-> Show ConfigMonoid
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ConfigMonoid -> ShowS
showsPrec :: Int -> ConfigMonoid -> ShowS
$cshow :: ConfigMonoid -> String
show :: ConfigMonoid -> String
$cshowList :: [ConfigMonoid] -> ShowS
showList :: [ConfigMonoid] -> ShowS
Show)
instance Semigroup ConfigMonoid where
<> :: ConfigMonoid -> ConfigMonoid -> ConfigMonoid
(<>) = ConfigMonoid -> ConfigMonoid -> ConfigMonoid
forall a. (Generic a, Monoid' (Rep a)) => a -> a -> a
mappenddefault
instance Monoid ConfigMonoid where
mempty :: ConfigMonoid
mempty = ConfigMonoid
forall a. (Generic a, Monoid' (Rep a)) => a
memptydefault
mappend :: ConfigMonoid -> ConfigMonoid -> ConfigMonoid
mappend = ConfigMonoid -> ConfigMonoid -> ConfigMonoid
forall a. Semigroup a => a -> a -> a
(<>)
parseConfigMonoid ::
Path Abs Dir
-> Value
-> Yaml.Parser (WithJSONWarnings ConfigMonoid)
parseConfigMonoid :: Path Abs Dir -> Value -> Parser (WithJSONWarnings ConfigMonoid)
parseConfigMonoid = String
-> (Object -> WarningParser ConfigMonoid)
-> Value
-> Parser (WithJSONWarnings ConfigMonoid)
forall a.
String
-> (Object -> WarningParser a)
-> Value
-> Parser (WithJSONWarnings a)
withObjectWarnings String
"ConfigMonoid" ((Object -> WarningParser ConfigMonoid)
-> Value -> Parser (WithJSONWarnings ConfigMonoid))
-> (Path Abs Dir -> Object -> WarningParser ConfigMonoid)
-> Path Abs Dir
-> Value
-> Parser (WithJSONWarnings ConfigMonoid)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Path Abs Dir -> Object -> WarningParser ConfigMonoid
parseConfigMonoidObject
parseConfigMonoidObject :: Path Abs Dir -> Object -> WarningParser ConfigMonoid
parseConfigMonoidObject :: Path Abs Dir -> Object -> WarningParser ConfigMonoid
parseConfigMonoidObject Path Abs Dir
rootDir Object
obj = do
let stackRoot :: First a
stackRoot = Maybe a -> First a
forall a. Maybe a -> First a
First Maybe a
forall a. Maybe a
Nothing
First (Path Rel Dir)
workDir <- Maybe (Path Rel Dir) -> First (Path Rel Dir)
forall a. Maybe a -> First a
First (Maybe (Path Rel Dir) -> First (Path Rel Dir))
-> WriterT WarningParserMonoid Parser (Maybe (Path Rel Dir))
-> WriterT WarningParserMonoid Parser (First (Path Rel Dir))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text
-> WriterT WarningParserMonoid Parser (Maybe (Path Rel Dir))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidWorkDirName
BuildOptsMonoid
buildOpts <- WarningParser (WithJSONWarnings BuildOptsMonoid)
-> WarningParser BuildOptsMonoid
forall a. WarningParser (WithJSONWarnings a) -> WarningParser a
jsonSubWarnings (Object
obj Object
-> Text -> WarningParser (Maybe (WithJSONWarnings BuildOptsMonoid))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidBuildOptsName WarningParser (Maybe (WithJSONWarnings BuildOptsMonoid))
-> WithJSONWarnings BuildOptsMonoid
-> WarningParser (WithJSONWarnings BuildOptsMonoid)
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= WithJSONWarnings BuildOptsMonoid
forall a. Monoid a => a
mempty)
DockerOptsMonoid
dockerOpts <-
WarningParser (WithJSONWarnings DockerOptsMonoid)
-> WarningParser DockerOptsMonoid
forall a. WarningParser (WithJSONWarnings a) -> WarningParser a
jsonSubWarnings (Object
obj Object
-> Text
-> WarningParser (Maybe (WithJSONWarnings DockerOptsMonoid))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidDockerOptsName WarningParser (Maybe (WithJSONWarnings DockerOptsMonoid))
-> WithJSONWarnings DockerOptsMonoid
-> WarningParser (WithJSONWarnings DockerOptsMonoid)
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= WithJSONWarnings DockerOptsMonoid
forall a. Monoid a => a
mempty)
NixOptsMonoid
nixOpts <- WarningParser (WithJSONWarnings NixOptsMonoid)
-> WarningParser NixOptsMonoid
forall a. WarningParser (WithJSONWarnings a) -> WarningParser a
jsonSubWarnings (Object
obj Object
-> Text -> WarningParser (Maybe (WithJSONWarnings NixOptsMonoid))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidNixOptsName WarningParser (Maybe (WithJSONWarnings NixOptsMonoid))
-> WithJSONWarnings NixOptsMonoid
-> WarningParser (WithJSONWarnings NixOptsMonoid)
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= WithJSONWarnings NixOptsMonoid
forall a. Monoid a => a
mempty)
First Int
connectionCount <- Maybe Int -> First Int
forall a. Maybe a -> First a
First (Maybe Int -> First Int)
-> WriterT WarningParserMonoid Parser (Maybe Int)
-> WriterT WarningParserMonoid Parser (First Int)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidConnectionCountName
FirstTrue
hideTHLoading <- Maybe Bool -> FirstTrue
FirstTrue (Maybe Bool -> FirstTrue)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstTrue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidHideTHLoadingName
First Bool
prefixTimestamps <- Maybe Bool -> First Bool
forall a. Maybe a -> First a
First (Maybe Bool -> First Bool)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser (First Bool)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidPrefixTimestampsName
Maybe Value
murls :: Maybe Value <- Object
obj Object -> Text -> WarningParser (Maybe Value)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidUrlsName
First Text
latestSnapshot <-
case Maybe Value
murls of
Maybe Value
Nothing -> First Text -> WriterT WarningParserMonoid Parser (First Text)
forall a. a -> WriterT WarningParserMonoid Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (First Text -> WriterT WarningParserMonoid Parser (First Text))
-> First Text -> WriterT WarningParserMonoid Parser (First Text)
forall a b. (a -> b) -> a -> b
$ Maybe Text -> First Text
forall a. Maybe a -> First a
First Maybe Text
forall a. Maybe a
Nothing
Just Value
urls -> WarningParser (WithJSONWarnings (First Text))
-> WriterT WarningParserMonoid Parser (First Text)
forall a. WarningParser (WithJSONWarnings a) -> WarningParser a
jsonSubWarnings (WarningParser (WithJSONWarnings (First Text))
-> WriterT WarningParserMonoid Parser (First Text))
-> WarningParser (WithJSONWarnings (First Text))
-> WriterT WarningParserMonoid Parser (First Text)
forall a b. (a -> b) -> a -> b
$ Parser (WithJSONWarnings (First Text))
-> WarningParser (WithJSONWarnings (First Text))
forall (m :: * -> *) a.
Monad m =>
m a -> WriterT WarningParserMonoid m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (Parser (WithJSONWarnings (First Text))
-> WarningParser (WithJSONWarnings (First Text)))
-> Parser (WithJSONWarnings (First Text))
-> WarningParser (WithJSONWarnings (First Text))
forall a b. (a -> b) -> a -> b
$ String
-> (Object -> WriterT WarningParserMonoid Parser (First Text))
-> Value
-> Parser (WithJSONWarnings (First Text))
forall a.
String
-> (Object -> WarningParser a)
-> Value
-> Parser (WithJSONWarnings a)
withObjectWarnings
String
"urls"
(\Object
o -> Maybe Text -> First Text
forall a. Maybe a -> First a
First (Maybe Text -> First Text)
-> WriterT WarningParserMonoid Parser (Maybe Text)
-> WriterT WarningParserMonoid Parser (First Text)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
"latest-snapshot" :: WarningParser (First Text))
Value
urls
First PackageIndexConfig
packageIndex <-
Maybe PackageIndexConfig -> First PackageIndexConfig
forall a. Maybe a -> First a
First (Maybe PackageIndexConfig -> First PackageIndexConfig)
-> WriterT WarningParserMonoid Parser (Maybe PackageIndexConfig)
-> WriterT WarningParserMonoid Parser (First PackageIndexConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> WarningParser (Maybe (WithJSONWarnings PackageIndexConfig))
-> WriterT WarningParserMonoid Parser (Maybe PackageIndexConfig)
forall (t :: * -> *) a.
Traversable t =>
WarningParser (t (WithJSONWarnings a)) -> WarningParser (t a)
jsonSubWarningsT (Object
obj Object
-> Text
-> WarningParser (Maybe (WithJSONWarnings PackageIndexConfig))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidPackageIndexName)
First [PackageIndexConfig]
packageIndices <-
Maybe [PackageIndexConfig] -> First [PackageIndexConfig]
forall a. Maybe a -> First a
First (Maybe [PackageIndexConfig] -> First [PackageIndexConfig])
-> WriterT WarningParserMonoid Parser (Maybe [PackageIndexConfig])
-> WriterT WarningParserMonoid Parser (First [PackageIndexConfig])
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> WarningParser (Maybe [WithJSONWarnings PackageIndexConfig])
-> WriterT WarningParserMonoid Parser (Maybe [PackageIndexConfig])
forall (t :: * -> *) (u :: * -> *) a.
(Traversable t, Traversable u) =>
WarningParser (u (t (WithJSONWarnings a)))
-> WarningParser (u (t a))
jsonSubWarningsTT (Object
obj Object
-> Text
-> WarningParser (Maybe [WithJSONWarnings PackageIndexConfig])
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidPackageIndicesName)
First Bool
systemGHC <- Maybe Bool -> First Bool
forall a. Maybe a -> First a
First (Maybe Bool -> First Bool)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser (First Bool)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidSystemGHCName
FirstTrue
installGHC <- Maybe Bool -> FirstTrue
FirstTrue (Maybe Bool -> FirstTrue)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstTrue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidInstallGHCName
FirstFalse
skipGHCCheck <- Maybe Bool -> FirstFalse
FirstFalse (Maybe Bool -> FirstFalse)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstFalse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidSkipGHCCheckName
FirstFalse
skipMsys <- Maybe Bool -> FirstFalse
FirstFalse (Maybe Bool -> FirstFalse)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstFalse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidSkipMsysName
IntersectingVersionRange
requireStackVersion <-
VersionRange -> IntersectingVersionRange
IntersectingVersionRange (VersionRange -> IntersectingVersionRange)
-> (VersionRangeJSON -> VersionRange)
-> VersionRangeJSON
-> IntersectingVersionRange
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (.versionRangeJSON) (VersionRangeJSON -> IntersectingVersionRange)
-> WriterT WarningParserMonoid Parser VersionRangeJSON
-> WriterT WarningParserMonoid Parser IntersectingVersionRange
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
( Object
obj Object -> Text -> WarningParser (Maybe VersionRangeJSON)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidRequireStackVersionName
WarningParser (Maybe VersionRangeJSON)
-> VersionRangeJSON
-> WriterT WarningParserMonoid Parser VersionRangeJSON
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= VersionRange -> VersionRangeJSON
VersionRangeJSON VersionRange
anyVersion
)
First String
arch <- Maybe String -> First String
forall a. Maybe a -> First a
First (Maybe String -> First String)
-> WriterT WarningParserMonoid Parser (Maybe String)
-> WriterT WarningParserMonoid Parser (First String)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe String)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidArchName
First GHCVariant
ghcVariant <- Maybe GHCVariant -> First GHCVariant
forall a. Maybe a -> First a
First (Maybe GHCVariant -> First GHCVariant)
-> WriterT WarningParserMonoid Parser (Maybe GHCVariant)
-> WriterT WarningParserMonoid Parser (First GHCVariant)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text -> WriterT WarningParserMonoid Parser (Maybe GHCVariant)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidGHCVariantName
First CompilerBuild
ghcBuild <- Maybe CompilerBuild -> First CompilerBuild
forall a. Maybe a -> First a
First (Maybe CompilerBuild -> First CompilerBuild)
-> WriterT WarningParserMonoid Parser (Maybe CompilerBuild)
-> WriterT WarningParserMonoid Parser (First CompilerBuild)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text -> WriterT WarningParserMonoid Parser (Maybe CompilerBuild)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidGHCBuildName
First Int
jobs <- Maybe Int -> First Int
forall a. Maybe a -> First a
First (Maybe Int -> First Int)
-> WriterT WarningParserMonoid Parser (Maybe Int)
-> WriterT WarningParserMonoid Parser (First Int)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidJobsName
[String]
extraIncludeDirs <- ShowS -> [String] -> [String]
forall a b. (a -> b) -> [a] -> [b]
map (Path Abs Dir -> String
forall b t. Path b t -> String
toFilePath Path Abs Dir
rootDir FilePath.</>) ([String] -> [String])
-> WriterT WarningParserMonoid Parser [String]
-> WriterT WarningParserMonoid Parser [String]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
Object
obj Object -> Text -> WarningParser (Maybe [String])
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidExtraIncludeDirsName WarningParser (Maybe [String])
-> [String] -> WriterT WarningParserMonoid Parser [String]
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= []
[String]
extraLibDirs <- ShowS -> [String] -> [String]
forall a b. (a -> b) -> [a] -> [b]
map (Path Abs Dir -> String
forall b t. Path b t -> String
toFilePath Path Abs Dir
rootDir FilePath.</>) ([String] -> [String])
-> WriterT WarningParserMonoid Parser [String]
-> WriterT WarningParserMonoid Parser [String]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
Object
obj Object -> Text -> WarningParser (Maybe [String])
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidExtraLibDirsName WarningParser (Maybe [String])
-> [String] -> WriterT WarningParserMonoid Parser [String]
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= []
[Text]
customPreprocessorExts <-
Object
obj Object -> Text -> WarningParser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidCustomPreprocessorExtsName WarningParser (Maybe [Text]) -> [Text] -> WarningParser [Text]
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= []
First (Path Abs File)
overrideGccPath <- Maybe (Path Abs File) -> First (Path Abs File)
forall a. Maybe a -> First a
First (Maybe (Path Abs File) -> First (Path Abs File))
-> WriterT WarningParserMonoid Parser (Maybe (Path Abs File))
-> WriterT WarningParserMonoid Parser (First (Path Abs File))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text
-> WriterT WarningParserMonoid Parser (Maybe (Path Abs File))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidOverrideGccPathName
First String
overrideHpack <- Maybe String -> First String
forall a. Maybe a -> First a
First (Maybe String -> First String)
-> WriterT WarningParserMonoid Parser (Maybe String)
-> WriterT WarningParserMonoid Parser (First String)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe String)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidOverrideHpackName
First Bool
concurrentTests <- Maybe Bool -> First Bool
forall a. Maybe a -> First a
First (Maybe Bool -> First Bool)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser (First Bool)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidConcurrentTestsName
First String
localBinPath <- Maybe String -> First String
forall a. Maybe a -> First a
First (Maybe String -> First String)
-> WriterT WarningParserMonoid Parser (Maybe String)
-> WriterT WarningParserMonoid Parser (First String)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe String)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidLocalBinPathName
Maybe Object
templates <- Object
obj Object -> Text -> WarningParser (Maybe Object)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
"templates"
(First SCM
scmInit, Map Text Text
templateParameters) <-
case Maybe Object
templates of
Maybe Object
Nothing -> (First SCM, Map Text Text)
-> WriterT WarningParserMonoid Parser (First SCM, Map Text Text)
forall a. a -> WriterT WarningParserMonoid Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe SCM -> First SCM
forall a. Maybe a -> First a
First Maybe SCM
forall a. Maybe a
Nothing,Map Text Text
forall k a. Map k a
M.empty)
Just Object
tobj -> do
Maybe SCM
scmInit <- Object
tobj Object -> Text -> WarningParser (Maybe SCM)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidScmInitName
Maybe (Map Text Text)
params <- Object
tobj Object -> Text -> WarningParser (Maybe (Map Text Text))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidTemplateParametersName
(First SCM, Map Text Text)
-> WriterT WarningParserMonoid Parser (First SCM, Map Text Text)
forall a. a -> WriterT WarningParserMonoid Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe SCM -> First SCM
forall a. Maybe a -> First a
First Maybe SCM
scmInit,Map Text Text -> Maybe (Map Text Text) -> Map Text Text
forall a. a -> Maybe a -> a
fromMaybe Map Text Text
forall k a. Map k a
M.empty Maybe (Map Text Text)
params)
First VersionCheck
compilerCheck <- Maybe VersionCheck -> First VersionCheck
forall a. Maybe a -> First a
First (Maybe VersionCheck -> First VersionCheck)
-> WriterT WarningParserMonoid Parser (Maybe VersionCheck)
-> WriterT WarningParserMonoid Parser (First VersionCheck)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text -> WriterT WarningParserMonoid Parser (Maybe VersionCheck)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidCompilerCheckName
First CompilerRepository
compilerRepository <- Maybe CompilerRepository -> First CompilerRepository
forall a. Maybe a -> First a
First (Maybe CompilerRepository -> First CompilerRepository)
-> WriterT WarningParserMonoid Parser (Maybe CompilerRepository)
-> WriterT WarningParserMonoid Parser (First CompilerRepository)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
obj Object
-> Text
-> WriterT WarningParserMonoid Parser (Maybe CompilerRepository)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidCompilerRepositoryName)
Map GhcOptionKey [Text]
options <- (GhcOptions -> [Text])
-> Map GhcOptionKey GhcOptions -> Map GhcOptionKey [Text]
forall a b k. (a -> b) -> Map k a -> Map k b
Map.map (.ghcOptions) (Map GhcOptionKey GhcOptions -> Map GhcOptionKey [Text])
-> WriterT WarningParserMonoid Parser (Map GhcOptionKey GhcOptions)
-> WriterT WarningParserMonoid Parser (Map GhcOptionKey [Text])
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
Object
obj Object
-> Text -> WarningParser (Maybe (Map GhcOptionKey GhcOptions))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidGhcOptionsName WarningParser (Maybe (Map GhcOptionKey GhcOptions))
-> Map GhcOptionKey GhcOptions
-> WriterT WarningParserMonoid Parser (Map GhcOptionKey GhcOptions)
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= (Map GhcOptionKey GhcOptions
forall a. Monoid a => a
mempty :: Map GhcOptionKey GhcOptions)
[Text]
optionsEverything <-
case (GhcOptionKey -> Map GhcOptionKey [Text] -> Maybe [Text]
forall k a. Ord k => k -> Map k a -> Maybe a
Map.lookup GhcOptionKey
GOKOldEverything Map GhcOptionKey [Text]
options, GhcOptionKey -> Map GhcOptionKey [Text] -> Maybe [Text]
forall k a. Ord k => k -> Map k a -> Maybe a
Map.lookup GhcOptionKey
GOKEverything Map GhcOptionKey [Text]
options) of
(Just [Text]
_, Just [Text]
_) ->
String -> WarningParser [Text]
forall a. String -> WriterT WarningParserMonoid Parser a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Cannot specify both `*` and `$everything` GHC options"
(Maybe [Text]
Nothing, Just [Text]
x) -> [Text] -> WarningParser [Text]
forall a. a -> WriterT WarningParserMonoid Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure [Text]
x
(Just [Text]
x, Maybe [Text]
Nothing) -> do
WarningParserMonoid -> WriterT WarningParserMonoid Parser ()
forall w (m :: * -> *). MonadWriter w m => w -> m ()
tell WarningParserMonoid
"The `*` ghc-options key is not recommended. Consider using \
\$locals, or if really needed, $everything"
[Text] -> WarningParser [Text]
forall a. a -> WriterT WarningParserMonoid Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure [Text]
x
(Maybe [Text]
Nothing, Maybe [Text]
Nothing) -> [Text] -> WarningParser [Text]
forall a. a -> WriterT WarningParserMonoid Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure []
let ghcOptionsByCat :: MonoidMap ApplyGhcOptions (Dual [Text])
ghcOptionsByCat = Map ApplyGhcOptions [Text]
-> MonoidMap ApplyGhcOptions (Dual [Text])
forall a b. Coercible a b => a -> b
coerce (Map ApplyGhcOptions [Text]
-> MonoidMap ApplyGhcOptions (Dual [Text]))
-> Map ApplyGhcOptions [Text]
-> MonoidMap ApplyGhcOptions (Dual [Text])
forall a b. (a -> b) -> a -> b
$ [(ApplyGhcOptions, [Text])] -> Map ApplyGhcOptions [Text]
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
[ (ApplyGhcOptions
AGOEverything, [Text]
optionsEverything)
, (ApplyGhcOptions
AGOLocals, [Text] -> GhcOptionKey -> Map GhcOptionKey [Text] -> [Text]
forall k a. Ord k => a -> k -> Map k a -> a
Map.findWithDefault [] GhcOptionKey
GOKLocals Map GhcOptionKey [Text]
options)
, (ApplyGhcOptions
AGOTargets, [Text] -> GhcOptionKey -> Map GhcOptionKey [Text] -> [Text]
forall k a. Ord k => a -> k -> Map k a -> a
Map.findWithDefault [] GhcOptionKey
GOKTargets Map GhcOptionKey [Text]
options)
]
ghcOptionsByName :: MonoidMap PackageName (Dual [Text])
ghcOptionsByName = Map PackageName [Text] -> MonoidMap PackageName (Dual [Text])
forall a b. Coercible a b => a -> b
coerce (Map PackageName [Text] -> MonoidMap PackageName (Dual [Text]))
-> Map PackageName [Text] -> MonoidMap PackageName (Dual [Text])
forall a b. (a -> b) -> a -> b
$ [(PackageName, [Text])] -> Map PackageName [Text]
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
[(PackageName
name, [Text]
opts) | (GOKPackage PackageName
name, [Text]
opts) <- Map GhcOptionKey [Text] -> [(GhcOptionKey, [Text])]
forall k a. Map k a -> [(k, a)]
Map.toList Map GhcOptionKey [Text]
options]
Map CabalConfigKey [Text]
cabalConfigOpts' <- Object
obj Object -> Text -> WarningParser (Maybe (Map CabalConfigKey [Text]))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidConfigureOptionsName WarningParser (Maybe (Map CabalConfigKey [Text]))
-> Map CabalConfigKey [Text]
-> WarningParser (Map CabalConfigKey [Text])
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= Map CabalConfigKey [Text]
forall a. Monoid a => a
mempty
let cabalConfigOpts :: MonoidMap CabalConfigKey (Dual [Text])
cabalConfigOpts = Map CabalConfigKey [Text] -> MonoidMap CabalConfigKey (Dual [Text])
forall a b. Coercible a b => a -> b
coerce (Map CabalConfigKey [Text]
cabalConfigOpts' :: Map CabalConfigKey [Text])
[Path Abs Dir]
extraPath <- Object
obj Object -> Text -> WarningParser (Maybe [Path Abs Dir])
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidExtraPathName WarningParser (Maybe [Path Abs Dir])
-> [Path Abs Dir] -> WarningParser [Path Abs Dir]
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= []
[String]
setupInfoLocations <- Object
obj Object -> Text -> WarningParser (Maybe [String])
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidSetupInfoLocationsName WarningParser (Maybe [String])
-> [String] -> WriterT WarningParserMonoid Parser [String]
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= []
SetupInfo
setupInfoInline <-
WarningParser (Maybe (WithJSONWarnings SetupInfo))
-> WarningParser (Maybe SetupInfo)
forall (t :: * -> *) a.
Traversable t =>
WarningParser (t (WithJSONWarnings a)) -> WarningParser (t a)
jsonSubWarningsT (Object
obj Object
-> Text -> WarningParser (Maybe (WithJSONWarnings SetupInfo))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidSetupInfoInlineName) WarningParser (Maybe SetupInfo)
-> SetupInfo -> WarningParser SetupInfo
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= SetupInfo
forall a. Monoid a => a
mempty
First (Path Abs Dir)
localProgramsBase <- Maybe (Path Abs Dir) -> First (Path Abs Dir)
forall a. Maybe a -> First a
First (Maybe (Path Abs Dir) -> First (Path Abs Dir))
-> WriterT WarningParserMonoid Parser (Maybe (Path Abs Dir))
-> WriterT WarningParserMonoid Parser (First (Path Abs Dir))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text
-> WriterT WarningParserMonoid Parser (Maybe (Path Abs Dir))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidLocalProgramsBaseName
First PvpBounds
pvpBounds <- Maybe PvpBounds -> First PvpBounds
forall a. Maybe a -> First a
First (Maybe PvpBounds -> First PvpBounds)
-> WriterT WarningParserMonoid Parser (Maybe PvpBounds)
-> WriterT WarningParserMonoid Parser (First PvpBounds)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text -> WriterT WarningParserMonoid Parser (Maybe PvpBounds)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidPvpBoundsName
FirstTrue
modifyCodePage <- Maybe Bool -> FirstTrue
FirstTrue (Maybe Bool -> FirstTrue)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstTrue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidModifyCodePageName
FirstFalse
rebuildGhcOptions <- Maybe Bool -> FirstFalse
FirstFalse (Maybe Bool -> FirstFalse)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstFalse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidRebuildGhcOptionsName
First ApplyGhcOptions
applyGhcOptions <- Maybe ApplyGhcOptions -> First ApplyGhcOptions
forall a. Maybe a -> First a
First (Maybe ApplyGhcOptions -> First ApplyGhcOptions)
-> WriterT WarningParserMonoid Parser (Maybe ApplyGhcOptions)
-> WriterT WarningParserMonoid Parser (First ApplyGhcOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text
-> WriterT WarningParserMonoid Parser (Maybe ApplyGhcOptions)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidApplyGhcOptionsName
First ApplyProgOptions
applyProgOptions <- Maybe ApplyProgOptions -> First ApplyProgOptions
forall a. Maybe a -> First a
First (Maybe ApplyProgOptions -> First ApplyProgOptions)
-> WriterT WarningParserMonoid Parser (Maybe ApplyProgOptions)
-> WriterT WarningParserMonoid Parser (First ApplyProgOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text
-> WriterT WarningParserMonoid Parser (Maybe ApplyProgOptions)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidApplyProgOptionsName
First Bool
allowNewer <- Maybe Bool -> First Bool
forall a. Maybe a -> First a
First (Maybe Bool -> First Bool)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser (First Bool)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidAllowNewerName
Maybe AllowNewerDeps
allowNewerDeps <- Object
obj Object -> Text -> WarningParser (Maybe AllowNewerDeps)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidAllowNewerDepsName
First TemplateName
defaultTemplate <- Maybe TemplateName -> First TemplateName
forall a. Maybe a -> First a
First (Maybe TemplateName -> First TemplateName)
-> WriterT WarningParserMonoid Parser (Maybe TemplateName)
-> WriterT WarningParserMonoid Parser (First TemplateName)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text -> WriterT WarningParserMonoid Parser (Maybe TemplateName)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidDefaultTemplateName
First Bool
allowDifferentUser <- Maybe Bool -> First Bool
forall a. Maybe a -> First a
First (Maybe Bool -> First Bool)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser (First Bool)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidAllowDifferentUserName
First DumpLogs
dumpLogs <- Maybe DumpLogs -> First DumpLogs
forall a. Maybe a -> First a
First (Maybe DumpLogs -> First DumpLogs)
-> WriterT WarningParserMonoid Parser (Maybe DumpLogs)
-> WriterT WarningParserMonoid Parser (First DumpLogs)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text -> WriterT WarningParserMonoid Parser (Maybe DumpLogs)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidDumpLogsName
First Bool
saveHackageCreds <- Maybe Bool -> First Bool
forall a. Maybe a -> First a
First (Maybe Bool -> First Bool)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser (First Bool)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidSaveHackageCredsName
First Text
hackageBaseUrl <- Maybe Text -> First Text
forall a. Maybe a -> First a
First (Maybe Text -> First Text)
-> WriterT WarningParserMonoid Parser (Maybe Text)
-> WriterT WarningParserMonoid Parser (First Text)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidHackageBaseUrlName
Maybe ColorWhen
configMonoidColorWhenUS <- Object
obj Object -> Text -> WarningParser (Maybe ColorWhen)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidColorWhenUSName
Maybe ColorWhen
configMonoidColorWhenGB <- Object
obj Object -> Text -> WarningParser (Maybe ColorWhen)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidColorWhenGBName
let colorWhen :: First ColorWhen
colorWhen = Maybe ColorWhen -> First ColorWhen
forall a. Maybe a -> First a
First (Maybe ColorWhen -> First ColorWhen)
-> Maybe ColorWhen -> First ColorWhen
forall a b. (a -> b) -> a -> b
$ Maybe ColorWhen
configMonoidColorWhenUS Maybe ColorWhen -> Maybe ColorWhen -> Maybe ColorWhen
forall a. Maybe a -> Maybe a -> Maybe a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> Maybe ColorWhen
configMonoidColorWhenGB
Maybe StylesUpdate
configMonoidStylesUS <- Object
obj Object -> Text -> WarningParser (Maybe StylesUpdate)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidStylesUSName
Maybe StylesUpdate
configMonoidStylesGB <- Object
obj Object -> Text -> WarningParser (Maybe StylesUpdate)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidStylesGBName
let styles :: StylesUpdate
styles = StylesUpdate -> Maybe StylesUpdate -> StylesUpdate
forall a. a -> Maybe a -> a
fromMaybe StylesUpdate
forall a. Monoid a => a
mempty (Maybe StylesUpdate -> StylesUpdate)
-> Maybe StylesUpdate -> StylesUpdate
forall a b. (a -> b) -> a -> b
$ Maybe StylesUpdate
configMonoidStylesUS Maybe StylesUpdate -> Maybe StylesUpdate -> Maybe StylesUpdate
forall a. Maybe a -> Maybe a -> Maybe a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> Maybe StylesUpdate
configMonoidStylesGB
FirstTrue
hideSourcePaths <- Maybe Bool -> FirstTrue
FirstTrue (Maybe Bool -> FirstTrue)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstTrue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidHideSourcePathsName
FirstTrue
recommendUpgrade <- Maybe Bool -> FirstTrue
FirstTrue (Maybe Bool -> FirstTrue)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstTrue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidRecommendUpgradeName
FirstTrue
notifyIfNixOnPath <- Maybe Bool -> FirstTrue
FirstTrue (Maybe Bool -> FirstTrue)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstTrue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidNotifyIfNixOnPathName
FirstTrue
notifyIfGhcUntested <-
Maybe Bool -> FirstTrue
FirstTrue (Maybe Bool -> FirstTrue)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstTrue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidNotifyIfGhcUntestedName
FirstTrue
notifyIfCabalUntested <-
Maybe Bool -> FirstTrue
FirstTrue (Maybe Bool -> FirstTrue)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstTrue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidNotifyIfCabalUntestedName
FirstTrue
notifyIfArchUnknown <-
Maybe Bool -> FirstTrue
FirstTrue (Maybe Bool -> FirstTrue)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstTrue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidNotifyIfArchUnknownName
CasaOptsMonoid
casaOpts <- WarningParser (WithJSONWarnings CasaOptsMonoid)
-> WarningParser CasaOptsMonoid
forall a. WarningParser (WithJSONWarnings a) -> WarningParser a
jsonSubWarnings (Object
obj Object
-> Text -> WarningParser (Maybe (WithJSONWarnings CasaOptsMonoid))
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidCasaOptsName WarningParser (Maybe (WithJSONWarnings CasaOptsMonoid))
-> WithJSONWarnings CasaOptsMonoid
-> WarningParser (WithJSONWarnings CasaOptsMonoid)
forall a. WarningParser (Maybe a) -> a -> WarningParser a
..!= WithJSONWarnings CasaOptsMonoid
forall a. Monoid a => a
mempty)
First CasaRepoPrefix
casaRepoPrefix <- Maybe CasaRepoPrefix -> First CasaRepoPrefix
forall a. Maybe a -> First a
First (Maybe CasaRepoPrefix -> First CasaRepoPrefix)
-> WriterT WarningParserMonoid Parser (Maybe CasaRepoPrefix)
-> WriterT WarningParserMonoid Parser (First CasaRepoPrefix)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object
-> Text
-> WriterT WarningParserMonoid Parser (Maybe CasaRepoPrefix)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidCasaRepoPrefixName
First Text
snapshotLocation <- Maybe Text -> First Text
forall a. Maybe a -> First a
First (Maybe Text -> First Text)
-> WriterT WarningParserMonoid Parser (Maybe Text)
-> WriterT WarningParserMonoid Parser (First Text)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidSnapshotLocationName
FirstFalse
noRunCompile <- Maybe Bool -> FirstFalse
FirstFalse (Maybe Bool -> FirstFalse)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser FirstFalse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidNoRunCompileName
First Bool
stackDeveloperMode <- Maybe Bool -> First Bool
forall a. Maybe a -> First a
First (Maybe Bool -> First Bool)
-> WriterT WarningParserMonoid Parser (Maybe Bool)
-> WriterT WarningParserMonoid Parser (First Bool)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Text -> WriterT WarningParserMonoid Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> WarningParser (Maybe a)
..:? Text
configMonoidStackDeveloperModeName
ConfigMonoid -> WarningParser ConfigMonoid
forall a. a -> WriterT WarningParserMonoid Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ConfigMonoid
{ First (Path Abs Dir)
forall {a}. First a
$sel:stackRoot:ConfigMonoid :: First (Path Abs Dir)
stackRoot :: forall {a}. First a
stackRoot
, First (Path Rel Dir)
$sel:workDir:ConfigMonoid :: First (Path Rel Dir)
workDir :: First (Path Rel Dir)
workDir
, BuildOptsMonoid
$sel:buildOpts:ConfigMonoid :: BuildOptsMonoid
buildOpts :: BuildOptsMonoid
buildOpts
, DockerOptsMonoid
$sel:dockerOpts:ConfigMonoid :: DockerOptsMonoid
dockerOpts :: DockerOptsMonoid
dockerOpts
, NixOptsMonoid
$sel:nixOpts:ConfigMonoid :: NixOptsMonoid
nixOpts :: NixOptsMonoid
nixOpts
, First Int
$sel:connectionCount:ConfigMonoid :: First Int
connectionCount :: First Int
connectionCount
, FirstTrue
$sel:hideTHLoading:ConfigMonoid :: FirstTrue
hideTHLoading :: FirstTrue
hideTHLoading
, First Bool
$sel:prefixTimestamps:ConfigMonoid :: First Bool
prefixTimestamps :: First Bool
prefixTimestamps
, First Text
$sel:latestSnapshot:ConfigMonoid :: First Text
latestSnapshot :: First Text
latestSnapshot
, First PackageIndexConfig
$sel:packageIndex:ConfigMonoid :: First PackageIndexConfig
packageIndex :: First PackageIndexConfig
packageIndex
, First [PackageIndexConfig]
$sel:packageIndices:ConfigMonoid :: First [PackageIndexConfig]
packageIndices :: First [PackageIndexConfig]
packageIndices
, First Bool
$sel:systemGHC:ConfigMonoid :: First Bool
systemGHC :: First Bool
systemGHC
, FirstTrue
$sel:installGHC:ConfigMonoid :: FirstTrue
installGHC :: FirstTrue
installGHC
, FirstFalse
$sel:skipGHCCheck:ConfigMonoid :: FirstFalse
skipGHCCheck :: FirstFalse
skipGHCCheck
, FirstFalse
$sel:skipMsys:ConfigMonoid :: FirstFalse
skipMsys :: FirstFalse
skipMsys
, First VersionCheck
$sel:compilerCheck:ConfigMonoid :: First VersionCheck
compilerCheck :: First VersionCheck
compilerCheck
, First CompilerRepository
$sel:compilerRepository:ConfigMonoid :: First CompilerRepository
compilerRepository :: First CompilerRepository
compilerRepository
, IntersectingVersionRange
$sel:requireStackVersion:ConfigMonoid :: IntersectingVersionRange
requireStackVersion :: IntersectingVersionRange
requireStackVersion
, First String
$sel:arch:ConfigMonoid :: First String
arch :: First String
arch
, First GHCVariant
$sel:ghcVariant:ConfigMonoid :: First GHCVariant
ghcVariant :: First GHCVariant
ghcVariant
, First CompilerBuild
$sel:ghcBuild:ConfigMonoid :: First CompilerBuild
ghcBuild :: First CompilerBuild
ghcBuild
, First Int
$sel:jobs:ConfigMonoid :: First Int
jobs :: First Int
jobs
, [String]
$sel:extraIncludeDirs:ConfigMonoid :: [String]
extraIncludeDirs :: [String]
extraIncludeDirs
, [String]
$sel:extraLibDirs:ConfigMonoid :: [String]
extraLibDirs :: [String]
extraLibDirs
, [Text]
$sel:customPreprocessorExts:ConfigMonoid :: [Text]
customPreprocessorExts :: [Text]
customPreprocessorExts
, First (Path Abs File)
$sel:overrideGccPath:ConfigMonoid :: First (Path Abs File)
overrideGccPath :: First (Path Abs File)
overrideGccPath
, First String
$sel:overrideHpack:ConfigMonoid :: First String
overrideHpack :: First String
overrideHpack
, First Bool
$sel:concurrentTests:ConfigMonoid :: First Bool
concurrentTests :: First Bool
concurrentTests
, First String
$sel:localBinPath:ConfigMonoid :: First String
localBinPath :: First String
localBinPath
, Map Text Text
$sel:templateParameters:ConfigMonoid :: Map Text Text
templateParameters :: Map Text Text
templateParameters
, First SCM
$sel:scmInit:ConfigMonoid :: First SCM
scmInit :: First SCM
scmInit
, MonoidMap PackageName (Dual [Text])
$sel:ghcOptionsByName:ConfigMonoid :: MonoidMap PackageName (Dual [Text])
ghcOptionsByName :: MonoidMap PackageName (Dual [Text])
ghcOptionsByName
, MonoidMap ApplyGhcOptions (Dual [Text])
$sel:ghcOptionsByCat:ConfigMonoid :: MonoidMap ApplyGhcOptions (Dual [Text])
ghcOptionsByCat :: MonoidMap ApplyGhcOptions (Dual [Text])
ghcOptionsByCat
, MonoidMap CabalConfigKey (Dual [Text])
$sel:cabalConfigOpts:ConfigMonoid :: MonoidMap CabalConfigKey (Dual [Text])
cabalConfigOpts :: MonoidMap CabalConfigKey (Dual [Text])
cabalConfigOpts
, [Path Abs Dir]
$sel:extraPath:ConfigMonoid :: [Path Abs Dir]
extraPath :: [Path Abs Dir]
extraPath
, [String]
$sel:setupInfoLocations:ConfigMonoid :: [String]
setupInfoLocations :: [String]
setupInfoLocations
, SetupInfo
$sel:setupInfoInline:ConfigMonoid :: SetupInfo
setupInfoInline :: SetupInfo
setupInfoInline
, First (Path Abs Dir)
$sel:localProgramsBase:ConfigMonoid :: First (Path Abs Dir)
localProgramsBase :: First (Path Abs Dir)
localProgramsBase
, First PvpBounds
$sel:pvpBounds:ConfigMonoid :: First PvpBounds
pvpBounds :: First PvpBounds
pvpBounds
, FirstTrue
$sel:modifyCodePage:ConfigMonoid :: FirstTrue
modifyCodePage :: FirstTrue
modifyCodePage
, FirstFalse
$sel:rebuildGhcOptions:ConfigMonoid :: FirstFalse
rebuildGhcOptions :: FirstFalse
rebuildGhcOptions
, First ApplyGhcOptions
$sel:applyGhcOptions:ConfigMonoid :: First ApplyGhcOptions
applyGhcOptions :: First ApplyGhcOptions
applyGhcOptions
, First ApplyProgOptions
$sel:applyProgOptions:ConfigMonoid :: First ApplyProgOptions
applyProgOptions :: First ApplyProgOptions
applyProgOptions
, First Bool
$sel:allowNewer:ConfigMonoid :: First Bool
allowNewer :: First Bool
allowNewer
, Maybe AllowNewerDeps
$sel:allowNewerDeps:ConfigMonoid :: Maybe AllowNewerDeps
allowNewerDeps :: Maybe AllowNewerDeps
allowNewerDeps
, First TemplateName
$sel:defaultTemplate:ConfigMonoid :: First TemplateName
defaultTemplate :: First TemplateName
defaultTemplate
, First Bool
$sel:allowDifferentUser:ConfigMonoid :: First Bool
allowDifferentUser :: First Bool
allowDifferentUser
, First DumpLogs
$sel:dumpLogs:ConfigMonoid :: First DumpLogs
dumpLogs :: First DumpLogs
dumpLogs
, First Bool
$sel:saveHackageCreds:ConfigMonoid :: First Bool
saveHackageCreds :: First Bool
saveHackageCreds
, First Text
$sel:hackageBaseUrl:ConfigMonoid :: First Text
hackageBaseUrl :: First Text
hackageBaseUrl
, First ColorWhen
$sel:colorWhen:ConfigMonoid :: First ColorWhen
colorWhen :: First ColorWhen
colorWhen
, StylesUpdate
$sel:styles:ConfigMonoid :: StylesUpdate
styles :: StylesUpdate
styles
, FirstTrue
$sel:hideSourcePaths:ConfigMonoid :: FirstTrue
hideSourcePaths :: FirstTrue
hideSourcePaths
, FirstTrue
$sel:recommendUpgrade:ConfigMonoid :: FirstTrue
recommendUpgrade :: FirstTrue
recommendUpgrade
, FirstTrue
$sel:notifyIfNixOnPath:ConfigMonoid :: FirstTrue
notifyIfNixOnPath :: FirstTrue
notifyIfNixOnPath
, FirstTrue
$sel:notifyIfGhcUntested:ConfigMonoid :: FirstTrue
notifyIfGhcUntested :: FirstTrue
notifyIfGhcUntested
, FirstTrue
$sel:notifyIfCabalUntested:ConfigMonoid :: FirstTrue
notifyIfCabalUntested :: FirstTrue
notifyIfCabalUntested
, FirstTrue
$sel:notifyIfArchUnknown:ConfigMonoid :: FirstTrue
notifyIfArchUnknown :: FirstTrue
notifyIfArchUnknown
, CasaOptsMonoid
$sel:casaOpts:ConfigMonoid :: CasaOptsMonoid
casaOpts :: CasaOptsMonoid
casaOpts
, First CasaRepoPrefix
$sel:casaRepoPrefix:ConfigMonoid :: First CasaRepoPrefix
casaRepoPrefix :: First CasaRepoPrefix
casaRepoPrefix
, First Text
$sel:snapshotLocation:ConfigMonoid :: First Text
snapshotLocation :: First Text
snapshotLocation
, FirstFalse
$sel:noRunCompile:ConfigMonoid :: FirstFalse
noRunCompile :: FirstFalse
noRunCompile
, First Bool
$sel:stackDeveloperMode:ConfigMonoid :: First Bool
stackDeveloperMode :: First Bool
stackDeveloperMode
}
configMonoidWorkDirName :: Text
configMonoidWorkDirName :: Text
configMonoidWorkDirName = Text
"work-dir"
configMonoidBuildOptsName :: Text
configMonoidBuildOptsName :: Text
configMonoidBuildOptsName = Text
"build"
configMonoidDockerOptsName :: Text
configMonoidDockerOptsName :: Text
configMonoidDockerOptsName = Text
"docker"
configMonoidNixOptsName :: Text
configMonoidNixOptsName :: Text
configMonoidNixOptsName = Text
"nix"
configMonoidConfigureOptionsName :: Text
configMonoidConfigureOptionsName :: Text
configMonoidConfigureOptionsName = Text
"configure-options"
configMonoidConnectionCountName :: Text
configMonoidConnectionCountName :: Text
configMonoidConnectionCountName = Text
"connection-count"
configMonoidHideTHLoadingName :: Text
configMonoidHideTHLoadingName :: Text
configMonoidHideTHLoadingName = Text
"hide-th-loading"
configMonoidPrefixTimestampsName :: Text
configMonoidPrefixTimestampsName :: Text
configMonoidPrefixTimestampsName = Text
"build-output-timestamps"
configMonoidUrlsName :: Text
configMonoidUrlsName :: Text
configMonoidUrlsName = Text
"urls"
configMonoidPackageIndexName :: Text
configMonoidPackageIndexName :: Text
configMonoidPackageIndexName = Text
"package-index"
configMonoidPackageIndicesName :: Text
configMonoidPackageIndicesName :: Text
configMonoidPackageIndicesName = Text
"package-indices"
configMonoidSystemGHCName :: Text
configMonoidSystemGHCName :: Text
configMonoidSystemGHCName = Text
"system-ghc"
configMonoidInstallGHCName :: Text
configMonoidInstallGHCName :: Text
configMonoidInstallGHCName = Text
"install-ghc"
configMonoidSkipGHCCheckName :: Text
configMonoidSkipGHCCheckName :: Text
configMonoidSkipGHCCheckName = Text
"skip-ghc-check"
configMonoidSkipMsysName :: Text
configMonoidSkipMsysName :: Text
configMonoidSkipMsysName = Text
"skip-msys"
configMonoidRequireStackVersionName :: Text
configMonoidRequireStackVersionName :: Text
configMonoidRequireStackVersionName = Text
"require-stack-version"
configMonoidArchName :: Text
configMonoidArchName :: Text
configMonoidArchName = Text
"arch"
configMonoidGHCVariantName :: Text
configMonoidGHCVariantName :: Text
configMonoidGHCVariantName = Text
"ghc-variant"
configMonoidGHCBuildName :: Text
configMonoidGHCBuildName :: Text
configMonoidGHCBuildName = Text
"ghc-build"
configMonoidJobsName :: Text
configMonoidJobsName :: Text
configMonoidJobsName = Text
"jobs"
configMonoidExtraIncludeDirsName :: Text
= Text
"extra-include-dirs"
configMonoidExtraLibDirsName :: Text
= Text
"extra-lib-dirs"
configMonoidCustomPreprocessorExtsName :: Text
configMonoidCustomPreprocessorExtsName :: Text
configMonoidCustomPreprocessorExtsName = Text
"custom-preprocessor-extensions"
configMonoidOverrideGccPathName :: Text
configMonoidOverrideGccPathName :: Text
configMonoidOverrideGccPathName = Text
"with-gcc"
configMonoidOverrideHpackName :: Text
configMonoidOverrideHpackName :: Text
configMonoidOverrideHpackName = Text
"with-hpack"
configMonoidConcurrentTestsName :: Text
configMonoidConcurrentTestsName :: Text
configMonoidConcurrentTestsName = Text
"concurrent-tests"
configMonoidLocalBinPathName :: Text
configMonoidLocalBinPathName :: Text
configMonoidLocalBinPathName = Text
"local-bin-path"
configMonoidScmInitName :: Text
configMonoidScmInitName :: Text
configMonoidScmInitName = Text
"scm-init"
configMonoidTemplateParametersName :: Text
configMonoidTemplateParametersName :: Text
configMonoidTemplateParametersName = Text
"params"
configMonoidCompilerCheckName :: Text
configMonoidCompilerCheckName :: Text
configMonoidCompilerCheckName = Text
"compiler-check"
configMonoidCompilerRepositoryName :: Text
configMonoidCompilerRepositoryName :: Text
configMonoidCompilerRepositoryName = Text
"compiler-repository"
configMonoidGhcOptionsName :: Text
configMonoidGhcOptionsName :: Text
configMonoidGhcOptionsName = Text
"ghc-options"
configMonoidExtraPathName :: Text
= Text
"extra-path"
configMonoidSetupInfoLocationsName :: Text
configMonoidSetupInfoLocationsName :: Text
configMonoidSetupInfoLocationsName = Text
"setup-info-locations"
configMonoidSetupInfoInlineName :: Text
configMonoidSetupInfoInlineName :: Text
configMonoidSetupInfoInlineName = Text
"setup-info"
configMonoidLocalProgramsBaseName :: Text
configMonoidLocalProgramsBaseName :: Text
configMonoidLocalProgramsBaseName = Text
"local-programs-path"
configMonoidPvpBoundsName :: Text
configMonoidPvpBoundsName :: Text
configMonoidPvpBoundsName = Text
"pvp-bounds"
configMonoidModifyCodePageName :: Text
configMonoidModifyCodePageName :: Text
configMonoidModifyCodePageName = Text
"modify-code-page"
configMonoidRebuildGhcOptionsName :: Text
configMonoidRebuildGhcOptionsName :: Text
configMonoidRebuildGhcOptionsName = Text
"rebuild-ghc-options"
configMonoidApplyGhcOptionsName :: Text
configMonoidApplyGhcOptionsName :: Text
configMonoidApplyGhcOptionsName = Text
"apply-ghc-options"
configMonoidApplyProgOptionsName :: Text
configMonoidApplyProgOptionsName :: Text
configMonoidApplyProgOptionsName = Text
"apply-prog-options"
configMonoidAllowNewerName :: Text
configMonoidAllowNewerName :: Text
configMonoidAllowNewerName = Text
"allow-newer"
configMonoidAllowNewerDepsName :: Text
configMonoidAllowNewerDepsName :: Text
configMonoidAllowNewerDepsName = Text
"allow-newer-deps"
configMonoidDefaultTemplateName :: Text
configMonoidDefaultTemplateName :: Text
configMonoidDefaultTemplateName = Text
"default-template"
configMonoidAllowDifferentUserName :: Text
configMonoidAllowDifferentUserName :: Text
configMonoidAllowDifferentUserName = Text
"allow-different-user"
configMonoidDumpLogsName :: Text
configMonoidDumpLogsName :: Text
configMonoidDumpLogsName = Text
"dump-logs"
configMonoidSaveHackageCredsName :: Text
configMonoidSaveHackageCredsName :: Text
configMonoidSaveHackageCredsName = Text
"save-hackage-creds"
configMonoidHackageBaseUrlName :: Text
configMonoidHackageBaseUrlName :: Text
configMonoidHackageBaseUrlName = Text
"hackage-base-url"
configMonoidColorWhenUSName :: Text
configMonoidColorWhenUSName :: Text
configMonoidColorWhenUSName = Text
"color"
configMonoidColorWhenGBName :: Text
configMonoidColorWhenGBName :: Text
configMonoidColorWhenGBName = Text
"colour"
configMonoidStylesUSName :: Text
configMonoidStylesUSName :: Text
configMonoidStylesUSName = Text
"stack-colors"
configMonoidStylesGBName :: Text
configMonoidStylesGBName :: Text
configMonoidStylesGBName = Text
"stack-colours"
configMonoidHideSourcePathsName :: Text
configMonoidHideSourcePathsName :: Text
configMonoidHideSourcePathsName = Text
"hide-source-paths"
configMonoidRecommendUpgradeName :: Text
configMonoidRecommendUpgradeName :: Text
configMonoidRecommendUpgradeName = Text
"recommend-stack-upgrade"
configMonoidNotifyIfNixOnPathName :: Text
configMonoidNotifyIfNixOnPathName :: Text
configMonoidNotifyIfNixOnPathName = Text
"notify-if-nix-on-path"
configMonoidNotifyIfGhcUntestedName :: Text
configMonoidNotifyIfGhcUntestedName :: Text
configMonoidNotifyIfGhcUntestedName = Text
"notify-if-ghc-untested"
configMonoidNotifyIfCabalUntestedName :: Text
configMonoidNotifyIfCabalUntestedName :: Text
configMonoidNotifyIfCabalUntestedName = Text
"notify-if-cabal-untested"
configMonoidNotifyIfArchUnknownName :: Text
configMonoidNotifyIfArchUnknownName :: Text
configMonoidNotifyIfArchUnknownName = Text
"notify-if-arch-unknown"
configMonoidCasaOptsName :: Text
configMonoidCasaOptsName :: Text
configMonoidCasaOptsName = Text
"casa"
configMonoidCasaRepoPrefixName :: Text
configMonoidCasaRepoPrefixName :: Text
configMonoidCasaRepoPrefixName = Text
"casa-repo-prefix"
configMonoidSnapshotLocationName :: Text
configMonoidSnapshotLocationName :: Text
configMonoidSnapshotLocationName = Text
"snapshot-location-base"
configMonoidNoRunCompileName :: Text
configMonoidNoRunCompileName :: Text
configMonoidNoRunCompileName = Text
"script-no-run-compile"
configMonoidStackDeveloperModeName :: Text
configMonoidStackDeveloperModeName :: Text
configMonoidStackDeveloperModeName = Text
"stack-developer-mode"