hix-0.7.0: lib/Hix/Managed/Build/Single.hs
module Hix.Managed.Build.Single where
import Hix.Data.Monad (M)
import Hix.Data.VersionBounds (exactVersion)
import Hix.Managed.Build (buildConstraints)
import Hix.Managed.Cabal.Data.SolverState (solverState)
import Hix.Managed.Constraints (fromVersions)
import qualified Hix.Managed.Data.EnvContext
import Hix.Managed.Data.EnvContext (EnvContext)
import Hix.Managed.Data.Mutable (MutableVersions)
import Hix.Managed.Data.StageState (BuildStatus (Failure))
import Hix.Managed.Handlers.Build (EnvBuilder)
buildVersions ::
EnvBuilder ->
EnvContext ->
Text ->
MutableVersions ->
M BuildStatus
buildVersions builder context description versions =
buildConstraints builder context description solver <&> \case
Just (_, _, status) -> status
Nothing -> Failure
where
solver = solverState context.solverBounds context.deps (fromVersions exactVersion versions) def