packages feed

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