hix-0.9.0: lib/Hix/Managed/App.hs
module Hix.Managed.App where
import Hix.Data.Monad (M)
import qualified Hix.Data.Options
import Hix.Data.Options (ManagedOptions)
import Hix.Managed.Data.ProjectContext (ProjectContext (..))
import Hix.Managed.Data.ProjectContextProto (ProjectContextProto (..))
import Hix.Managed.Data.ProjectResult (ProjectResult)
import Hix.Managed.Handlers.Build (BuildHandlers)
import Hix.Managed.Handlers.Build.Test (chooseHandlers)
import qualified Hix.Managed.Handlers.Project.Prod as Project
import Hix.Managed.ProjectContext (withProjectContext)
managedApp ::
ManagedOptions ->
ProjectContextProto ->
(BuildHandlers -> ProjectContext -> M ProjectResult) ->
M ProjectResult
managedApp opts proto use = do
handlersProject <- Project.handlersProd opts.stateFile
withProjectContext handlersProject opts.project proto \ context -> do
handlers <- chooseHandlers opts.handlers handlersProject context.build context.cabal
use handlers context