module Network.IPFS.Process (runProc) where import Network.IPFS.Prelude import Network.IPFS.Process.Types runProc :: ( MonadIO m , MonadReader cfg m , HasProcessContext cfg , HasLogFunc cfg ) => (ProcessConfig stdin stdout () -> m a) -> FilePath -> StreamIn stdin -> StreamOut stdout -> [Opt] -> m a runProc :: forall (m :: * -> *) cfg stdin stdout a. (MonadIO m, MonadReader cfg m, HasProcessContext cfg, HasLogFunc cfg) => (ProcessConfig stdin stdout () -> m a) -> FilePath -> StreamIn stdin -> StreamOut stdout -> [FilePath] -> m a runProc ProcessConfig stdin stdout () -> m a processor FilePath binPath StreamIn stdin inStream StreamOut stdout outStream [FilePath] opts = forall env (m :: * -> *) a. (HasProcessContext env, HasLogFunc env, MonadReader env m, MonadIO m, HasCallStack) => FilePath -> [FilePath] -> (ProcessConfig () () () -> m a) -> m a proc FilePath binPath [FilePath] opts forall a b. (a -> b) -> a -> b <| ProcessConfig stdin stdout () -> m a processor forall b c a. (b -> c) -> (a -> b) -> a -> c . forall stdin stdin0 stdout stderr. StreamSpec 'STInput stdin -> ProcessConfig stdin0 stdout stderr -> ProcessConfig stdin stdout stderr setStdin StreamIn stdin inStream forall b c a. (b -> c) -> (a -> b) -> a -> c . forall stdout stdin stdout0 stderr. StreamSpec 'STOutput stdout -> ProcessConfig stdin stdout0 stderr -> ProcessConfig stdin stdout stderr setStdout StreamOut stdout outStream