     /// Launches the given command with the working directory set to path (or the parent directory if path is a file), forwarding stderr and stdout to the current process
     ///
     /// Returns the status.
-    public func launchCommand(command: String, arguments: [String] = []) -> Int {
+    public func launchCommand(command: String, arguments: [String] = [], exitOnFailure: Bool = false) -> Int {
         return launchCommand(command, arguments: arguments, configure: { task in
             task.standardOutput = NSFileHandle.fileHandleWithStandardOutput()
             task.standardError = NSFileHandle.fileHandleWithStandardError()


        task.launch()
        task.waitUntilExit()
        return Int(task.terminationStatus)
    }
}
    }

    // Launch the task and return the status. Configure block for configuring stdout/stderr
    private func launchCommand(command: String, arguments: [String] = [], exitOnFailure: Bool = false, configure: (NSTask -> Void)) -> Int {
        let task = NSTask()
        if isDirectory {
            task.currentDirectoryPath = path
