I am trying to build a Gui for homebrew on mac , with objective-c, but when i try to see the installed packages with the following code it return empty but if i try other command like update it gives me the result, I tried the same with java and the same error occurs.
Git page: feel free to help the project, the code might have a lot of errors I am new to objective-c.
NSTask *task;
task=[[NSTask alloc]init];
[task setLaunchPath:@"/Users/rogeriop062/homebrew/bin/brew"];
NSArray *arguments;
arguments = [NSArray arrayWithObjects:@"list",nil];
[task setArguments: arguments];
NSPipe *pipe;
pipe =[NSPipe pipe];
[task setStandardOutput:pipe];
NSFileHandle *file;
file=[pipe fileHandleForReading];
[task launch];
NSMutableData *data=[NSMutableData dataWithCapacity:1000];
while ([task isRunning]) {
[data appendData:[file readDataToEndOfFile]];
}
[data appendData:[file readDataToEndOfFile]];
NSString *string;
string =[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"result: %@\n",string);
That’s an interesting project; good for you! Homebrew works very nicely on my Mac. I can’t see anything wrong with your code. I pasted your code into a test routine on my iMac and it worked perfectly. It listed the programs that I had installed with brew. One per line, which I didn’t expect, but it worked. Sorry.
You could also try this. Delete everything in your method from
[task launch]to the end, and replace it with this:and that produces the same results as your code on my machine – it works, I’m afraid – but it will not take compute time waiting for the result.