5 // Created by Pieter de Bie on 16-06-08.
6 // Copyright 2008 __MyCompanyName__. All rights reserved.
12 @implementation PBEasyPipe
14 + (NSFileHandle*) handleForCommand: (NSString*) cmd withArgs: (NSArray*) args
16 return [self handleForCommand:cmd withArgs:args inDir:nil];
19 + (NSFileHandle*) handleForCommand: (NSString*) cmd withArgs: (NSArray*) args inDir: (NSString*) dir
21 NSTask* task = [[NSTask alloc] init];
22 task.launchPath = cmd;
23 task.arguments = args;
25 task.currentDirectoryPath = dir;
26 NSLog(@"Starting `cmd %@ %@` in dir %@", cmd, [args componentsJoinedByString:@" "], dir);
27 NSPipe* pipe = [NSPipe pipe];
28 task.standardOutput = pipe;
30 NSFileHandle* handle = [NSFileHandle fileHandleWithStandardOutput];
31 handle = [pipe fileHandleForReading];
39 + (NSString*) outputForCommand: (NSString*) cmd withArgs: (NSArray*) args inDir: (NSString*) dir
41 NSFileHandle* handle = [self handleForCommand:cmd withArgs: args inDir: dir];
42 NSData* data = [handle readDataToEndOfFile];
43 NSString* string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
44 if ([string hasSuffix:@"\n"])
45 string = [string substringToIndex:[string length]-1];
49 + (NSString*) outputForCommand: (NSString*) cmd withArgs: (NSArray*) args
51 return [self outputForCommand:cmd withArgs:args inDir:nil];