Make shellcontext's stdin and stderror be ReadableStream and WriteableStream.

This commit is contained in:
Kare Morstol
2015-10-07 16:37:18 +02:00
parent 31508d338c
commit 2ea2c5ccce
4 changed files with 13 additions and 13 deletions
+2 -2
View File
@@ -65,9 +65,9 @@ extension ShellRunnable {
task.environment = shellcontext.env
task.currentDirectoryPath = shellcontext.currentdirectory
task.standardInput = shellcontext.stdin
task.standardInput = shellcontext.stdin.filehandle
task.standardOutput = shellcontext.stdout.filehandle
task.standardError = shellcontext.stderror
task.standardError = shellcontext.stderror.filehandle
return task
}
+8 -8
View File
@@ -11,9 +11,9 @@ public protocol ShellContextType {
var encoding: NSStringEncoding {get set}
var env: [String: String] {get set}
var stdin: NSFileHandle {get set}
var stdin: ReadableStream {get set}
var stdout: WriteableStream {get set}
var stderror: NSFileHandle {get set}
var stderror: WriteableStream {get set}
/**
The current working directory.
@@ -29,9 +29,9 @@ public struct ShellContext: ShellContextType {
public var encoding: NSStringEncoding
public var env: [String: String]
public var stdin: NSFileHandle
public var stdin: ReadableStream
public var stdout: WriteableStream
public var stderror: NSFileHandle
public var stderror: WriteableStream
/**
The current working directory.
@@ -46,9 +46,9 @@ public struct ShellContext: ShellContextType {
encoding = NSUTF8StringEncoding
env = [String:String]()
stdin = NSFileHandle.fileHandleWithNullDevice()
stdin = ReadableStream(NSFileHandle.fileHandleWithNullDevice(), encoding: encoding)
stdout = WriteableStream(NSFileHandle.fileHandleWithNullDevice(), encoding: encoding)
stderror = NSFileHandle.fileHandleWithNullDevice()
stderror = WriteableStream(NSFileHandle.fileHandleWithNullDevice(), encoding: encoding)
currentdirectory = main.currentdirectory
}
@@ -77,9 +77,9 @@ public final class MainShellContext: ShellContextType {
public var encoding = NSUTF8StringEncoding
public lazy var env = NSProcessInfo.processInfo().environment as [String: String]
public lazy var stdin = NSFileHandle.fileHandleWithStandardInput() //as ReadableStreamType
public lazy var stdin: ReadableStream = { ReadableStream(NSFileHandle.fileHandleWithStandardInput(), encoding: self.encoding) }()
public lazy var stdout: WriteableStream = { WriteableStream(NSFileHandle.fileHandleWithStandardOutput(), encoding: self.encoding) }()
public lazy var stderror = NSFileHandle.fileHandleWithStandardError() //as WriteableStreamType
public lazy var stderror: WriteableStream = { WriteableStream(NSFileHandle.fileHandleWithStandardError(), encoding: self.encoding) }()
/**
The current working directory.
+1 -1
View File
@@ -78,7 +78,7 @@ class RunAndPrint_Tests: XCTestCase {
test_stdout = outputpipe.fileHandleForReading
let errorpipe = NSPipe()
main.stderror = errorpipe.fileHandleForWriting
main.stderror = WriteableStream(errorpipe.fileHandleForWriting)
test_stderr = errorpipe.fileHandleForReading
}
+2 -2
View File
@@ -58,9 +58,9 @@ class BlankShellContext_Tests: XCTestCase {
func testIsBlank () {
let context = ShellContext()
XCTAssert( context.stdin === NSFileHandle.fileHandleWithNullDevice() )
XCTAssert( context.stdin.filehandle === NSFileHandle.fileHandleWithNullDevice() )
XCTAssert( context.stdout.filehandle === NSFileHandle.fileHandleWithNullDevice() )
XCTAssert( context.stderror === NSFileHandle.fileHandleWithNullDevice() )
XCTAssert( context.stderror.filehandle === NSFileHandle.fileHandleWithNullDevice() )
}
func testNonAbsoluteExecutablePathFailsOnEmptyPATHEnvVariable () {