@@ -52,6 +52,7 @@ import System.IO (Handle)
5252import System.IO.Streams (InputStream, handleToInputStream)
5353import qualified System.IO.Streams as Streams
5454import System.IO.Streams.Concurrent (concurrentMerge)
55+import System.Posix.Escape (escape)
5556import System.Process (CreateProcess, ProcessHandle, StdStream (CreatePipe), std_err, std_out)
5657import qualified System.Process as Process
5758import qualified Data.Aeson as Aeson
@@ -246,8 +247,7 @@ reconstructCommand p = case p of
246247 Process.ShellCommand str -> T.pack str
247248 Process.RawCommand c as -> processToShellString c as
248249 where
249− processToShellString cmd args = T.unwords $ map quoteAndEscape (cmd : args)
250− quoteAndEscape x = "'" <> T.replace "'" "'\''" (T.pack x) <> "'"
250+ processToShellString cmd args = T.pack $ unwords $ map escape (cmd : args)
251251
252252reconstructProcSpec :: ProcessSpec -> Text
253253reconstructProcSpec = reconstructCommand . Process.cmdspec . _processSpec_createProcess