     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"]


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

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

        task.waitUntilExit()

        let data = pipe.fileHandleForReading.readDataToEndOfFile()
        return String(data: data, encoding: .utf8)!.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
    }

    // Similar to above, but can throw, and throws with most of
