module Network.Serverless.Execute.LocalProcessBackend where -------------------------------------------------------------------------------- import qualified Data.ByteString.Lazy as BL import System.Process.Typed -------------------------------------------------------------------------------- import Network.Serverless.Execute.Backend -------------------------------------------------------------------------------- -- | -- A 'Backend' which uses local processes as executors. Useful for testing. localProcessBackend :: Backend localProcessBackend = Backend $ \stdin' -> do executable <- liftIO getExecutablePath let conf = setStdin (byteStringInput $ BL.fromStrict stdin') $ proc executable [const_SERVERLESS_EXECUTOR_MODE] liftIO . fmap BL.toStrict $ readProcessStdout_ conf