     private func makeTask(for command: String,
                           with arguments: [String],
                           environmentVariables: [String: String]) -> Process {
-        let script = [command,
-                      arguments.joined(separator: " ")].filter { !$0.isEmpty }.joined(separator: " ")
+        let script = "\(command) \(arguments.joined(separator: " "))"
         let processEnv = ProcessInfo.processInfo.environment
         let task = Process()
         task.launchPath = processEnv["SHELL"]


        // OK, so it failed, raise a new error with all the useful metadata
        let stderrData = stdout.fileHandleForReading.readDataToEndOfFile()
        let stderrString = String(data: stderrData, encoding: String.Encoding.utf8)!

        throw SpawnError.commandFailed(command: command,
                                       exitCode: task.terminationStatus,


        // Pull out the STDOUT as a string because we'll need that regardless
        let stdoutData = stdout.fileHandleForReading.readDataToEndOfFile()
        let stdoutString = String(data: stdoutData, encoding: .utf8)!

        // 0 is no problems in unix land
        if task.terminationStatus == 0 {
