mirror of
https://github.com/kennethreitz-archive/gitx.git
synced 2026-06-05 23:40:18 +00:00
PBEasyPipe: Add a new method to provide input
This commit is contained in:
+34
-3
@@ -49,14 +49,42 @@
|
||||
NSTask *task = [self taskForCommand:cmd withArgs:args inDir:dir];
|
||||
NSFileHandle* handle = [task.standardOutput fileHandleForReading];
|
||||
[task launch];
|
||||
|
||||
|
||||
NSData* data = [handle readDataToEndOfFile];
|
||||
NSString* string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
|
||||
|
||||
|
||||
// Strip trailing newline
|
||||
if ([string hasSuffix:@"\n"])
|
||||
string = [string substringToIndex:[string length]-1];
|
||||
|
||||
[task waitUntilExit];
|
||||
if (ret)
|
||||
*ret = [task terminationStatus];
|
||||
return string;
|
||||
}
|
||||
|
||||
+ (NSString*) outputForCommand:(NSString *) cmd
|
||||
withArgs:(NSArray *) args
|
||||
inDir:(NSString *) dir
|
||||
inputString:(NSString *)input
|
||||
retValue:(int *) ret
|
||||
{
|
||||
NSTask *task = [self taskForCommand:cmd withArgs:args inDir:dir];
|
||||
NSFileHandle* handle = [task.standardOutput fileHandleForReading];
|
||||
task.standardInput = [NSPipe pipe];
|
||||
NSFileHandle *inHandle = [task.standardInput fileHandleForWriting];
|
||||
[inHandle writeData:[input dataUsingEncoding:NSUTF8StringEncoding]];
|
||||
[inHandle closeFile];
|
||||
|
||||
[task launch];
|
||||
|
||||
NSData* data = [handle readDataToEndOfFile];
|
||||
NSString* string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
|
||||
|
||||
// Strip trailing newline
|
||||
if ([string hasSuffix:@"\n"])
|
||||
string = [string substringToIndex:[string length]-1];
|
||||
|
||||
[task waitUntilExit];
|
||||
if (ret)
|
||||
*ret = [task terminationStatus];
|
||||
@@ -65,10 +93,12 @@
|
||||
|
||||
// We don't use the above function because then we'd have to wait until the program was finished
|
||||
// with running
|
||||
+ (NSString*) outputForCommand: (NSString*) cmd withArgs: (NSArray*) args inDir: (NSString*) dir
|
||||
|
||||
+ (NSString*) outputForCommand: (NSString*) cmd withArgs: (NSArray*) args inDir: (NSString*) dir
|
||||
{
|
||||
NSTask *task = [self taskForCommand:cmd withArgs:args inDir:dir];
|
||||
NSFileHandle* handle = [task.standardOutput fileHandleForReading];
|
||||
|
||||
[task launch];
|
||||
|
||||
NSData* data = [handle readDataToEndOfFile];
|
||||
@@ -80,6 +110,7 @@
|
||||
return string;
|
||||
}
|
||||
|
||||
|
||||
+ (NSString*) outputForCommand: (NSString*) cmd withArgs: (NSArray*) args
|
||||
{
|
||||
return [self outputForCommand:cmd withArgs:args inDir:nil];
|
||||
|
||||
Reference in New Issue
Block a user