rendered paste body-(void)awakeFromNib
{
}
-(void)updateString:(NSNotification *)arg
{
NSData *data = [[arg userInfo] objectForKey:NSFileHandleNotificationDataItem];
NSString *dataAsString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
if(data && [data length])
incomingString = [[incomingString stringByAppendingString:dataAsString] mutableCopy];
[box setString:incomingString];
[box scrollRangeToVisible:NSMakeRange([[box textStorage] length], 0)];
[outData readInBackgroundAndNotify];
}
-(void)taskCompleted:(NSNotification *)arg
{
[nCenter removeObserver:self];
}
-(void)launchApp:(id)sender
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
incomingString = [[NSMutableString alloc] init];
NSTask *task = [[[NSTask alloc] init] autorelease];
[nCenter addObserver:self selector:@selector(taskCompleted:) name:NSTaskDidTerminateNotification object:task];
NSPipe *oPipe = [NSPipe pipe];
[task setArguments:[NSArray arrayWithObjects:@"filelist", @"114.ipsw", @"pwnt.ipsw", nil]];
[task setLaunchPath:[[NSBundle mainBundle] pathForResource:@"run" ofType:@"sh"]];
[task setStandardOutput:oPipe];
outData = [oPipe fileHandleForReading];
[nCenter addObserver:self selector:@selector(updateString:) name:NSFileHandleReadCompletionNotification object:outData];
[task launch];
[outData readInBackgroundAndNotify];
[pool drain];
}