stack-2.15.1: src/Stack/Types/GlobalOptsMonoid.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE NoFieldSelectors #-}
module Stack.Types.GlobalOptsMonoid
( GlobalOptsMonoid (..)
) where
import Generics.Deriving.Monoid ( mappenddefault, memptydefault )
import Stack.Prelude
import Stack.Types.ConfigMonoid ( ConfigMonoid )
import Stack.Types.DockerEntrypoint ( DockerEntrypoint )
import Stack.Types.LockFileBehavior ( LockFileBehavior )
import Stack.Types.Resolver ( AbstractResolver )
-- | Parsed global command-line options monoid.
data GlobalOptsMonoid = GlobalOptsMonoid
{ reExecVersion :: !(First String)
-- ^ Expected re-exec in container version
, dockerEntrypoint :: !(First DockerEntrypoint)
-- ^ Data used when Stack is acting as a Docker entrypoint (internal use
-- only)
, logLevel :: !(First LogLevel)
-- ^ Log level
, timeInLog :: !FirstTrue
-- ^ Whether to include timings in logs.
, rslInLog :: !FirstFalse
-- ^ Whether to include raw snapshot layer (RSL) in logs.
, planInLog :: !FirstFalse
-- ^ Whether to include debug information about the construction of the
-- build plan in logs.
, configMonoid :: !ConfigMonoid
-- ^ Config monoid, for passing into 'loadConfig'
, resolver :: !(First (Unresolved AbstractResolver))
-- ^ Resolver override
, resolverRoot :: !(First FilePath)
-- ^ root directory for resolver relative path
, compiler :: !(First WantedCompiler)
-- ^ Compiler override
, terminal :: !(First Bool)
-- ^ We're in a terminal?
, styles :: !StylesUpdate
-- ^ Stack's output styles
, termWidthOpt :: !(First Int)
-- ^ Terminal width override
, stackYaml :: !(First FilePath)
-- ^ Override project stack.yaml
, lockFileBehavior :: !(First LockFileBehavior)
-- ^ See 'globalLockFileBehavior'
}
deriving Generic
instance Semigroup GlobalOptsMonoid where
(<>) = mappenddefault
instance Monoid GlobalOptsMonoid where
mempty = memptydefault
mappend = (<>)