-module Language.Haskell.LSP.Test.Server where
+module Language.Haskell.LSP.Test.Server (withServer) where
import Control.Concurrent
import Control.Monad
withServer :: String -> (Handle -> Handle -> Int -> IO a) -> IO a
withServer serverExe f = do
- let createProc = (shell serverExe) { std_in = CreatePipe, std_out = CreatePipe, std_err = CreatePipe }
+ let cmd:args = words serverExe
+ createProc = (proc cmd args) { std_in = CreatePipe, std_out = CreatePipe, std_err = CreatePipe }
(Just serverIn, Just serverOut, Just serverErr, serverProc) <- createProcess createProc
-- Need to continuously consume to stderr else it gets blocked