diff --git a/Sources/CLI/RunCommand.swift b/Sources/CLI/RunCommand.swift index 605a3201..82b9b956 100644 --- a/Sources/CLI/RunCommand.swift +++ b/Sources/CLI/RunCommand.swift @@ -205,30 +205,28 @@ struct ProcessIO { var stdio = [FileHandle?](repeating: nil, count: 3) let stdin: Pipe? = { - if !interactive && !tty { + if !interactive { return nil } return Pipe() }() if let stdin { - if interactive { - let pin = FileHandle.standardInput - let stdinOSFile = OSFile(fd: pin.fileDescriptor) - let pipeOSFile = OSFile(fd: stdin.fileHandleForWriting.fileDescriptor) - try stdinOSFile.makeNonBlocking() - nonisolated(unsafe) let buf = UnsafeMutableBufferPointer.allocate(capacity: Int(getpagesize())) + let pin = FileHandle.standardInput + let stdinOSFile = OSFile(fd: pin.fileDescriptor) + let pipeOSFile = OSFile(fd: stdin.fileHandleForWriting.fileDescriptor) + try stdinOSFile.makeNonBlocking() + nonisolated(unsafe) let buf = UnsafeMutableBufferPointer.allocate(capacity: Int(getpagesize())) - pin.readabilityHandler = { _ in - Self.streamStdin( - from: stdinOSFile, - to: pipeOSFile, - buffer: buf, - ) { - pin.readabilityHandler = nil - buf.deallocate() - try? stdin.fileHandleForWriting.close() - } + pin.readabilityHandler = { _ in + Self.streamStdin( + from: stdinOSFile, + to: pipeOSFile, + buffer: buf, + ) { + pin.readabilityHandler = nil + buf.deallocate() + try? stdin.fileHandleForWriting.close() } } stdio[0] = stdin.fileHandleForReading