packages feed

seihou-core-0.4.0.0: src/Seihou/Effect/Process.hs

module Seihou.Effect.Process
  ( Process (..),
    runProcess,
  )
where

import Seihou.Prelude
import System.Exit (ExitCode)

data Process :: Effect where
  RunProcess :: Text -> [Text] -> Maybe FilePath -> Process m (ExitCode, Text, Text)

type instance DispatchOf Process = Dynamic

runProcess :: (Process :> es) => Text -> [Text] -> Maybe FilePath -> Eff es (ExitCode, Text, Text)
runProcess cmd args workDir = send (RunProcess cmd args workDir)