packages feed

SciFlow-0.4.0: src/Scientific/Workflow.hs

module Scientific.Workflow
    ( runWorkflow
    , getWorkflowState
    , module Scientific.Workflow.Builder
    , module Scientific.Workflow.Types
    ) where

import           Control.Monad.State

import           Scientific.Workflow.Builder
import           Scientific.Workflow.Types

runWorkflow :: [Workflow] -> State RunOpt () -> IO ()
runWorkflow wfs setOpt = do
    config <- getWorkflowState $ _dbPath opt
    foldM_ f config wfs
  where
    opt = execState setOpt defaultRunOpt
    f config (Workflow wf) = do
        (_, config') <- runStateT (wf ()) config
        return config'