Steve: You don't need to chmod the file NSTask is really meant for executing Mach-I executables, so the launch path needs to be the interpreter. For example, if this is a ruby script your launch path would be /usr/ bin/ruby and your first argument would be the first argument. If it's a shell script you would use /bin/sh and the script would be the first argument (and so on and so fourth).
Omar Qazi Hello, Galaxy 1.310.294.1593 On Aug 2, 2008, at 2:19 PM, "Steve Cronin" <[EMAIL PROTECTED]> wrote: > Andrew: > > Thanks for the slap on the head! > So I chmod'ed the file and no longer get the 'not accessible error' > YEAH! > > BUT now I get: > *** NSTask: Task create for path '/Users/steve/Library/Application > Support/XYZ/Scripts/myUseful.o' failed: 88, "Malformed Mach-o file" > > So I must be missing something about the contents of script files. > Here's my script: > > myUseful.m > #import <Cocoa/Cocoa.h> > int main(int argc, char **argv) > { > char dummy; > read(STDIN_FILENO, &dummy, 1); > [NSAutoreleasePool new]; > NSURL *url = [NSURL fileURLWithPath:[NSString > stringWithUTF8String:argv[1]]]; > LSOpenCFURLRef((CFURLRef)url, NULL); > return 0; > } > > You will just have to trust me that I DO need to launch the file in > this manner. > What do I need to do to this file to make it into the correct format? > > THANKS AGAIN for the chmod help! > Steve > > On Aug 2, 2008, at 3:26 PM, Andrew Farmer wrote: > >> On 02 Aug 08, at 13:01, Steve Cronin wrote: >>> I'm trying to do something that seems like it should be easy, but >>> I'm stymied by what I think is a permissions error I don't >>> understand. >>> >>> I'm trying to run a script using NSTask. >>> I have the static script stored as a separate file in my bundle. >>> I have created a folder in my "Applications Support" directory >>> called "Scripts" and copied my script and several items into this >>> directory. >>> Note that this has a space in the full pathname! >>> >>> SO I have tried the following: >>> NSString *myScriptPath = [[self scriptsFolderPath] >>> stringByAppendingPathComponent:@"myUseful.script"]; //yes I have >>> verified this is a valid path!!! >>> NSTask *task = [[[NSTask alloc] init] autorelease]; >>> [task setLaunchPath: myScriptPath]; >>> [task setArguments:[NSArray arrayWithObject:...]]; >>> [task setStandardInput:[NSPipe pipe]]; >>> [task launch]; >>> >>> ERRROR: launch path not accessible >> >> Are you sure myUseful.script is directly executable? Just because >> it's double-clickable in the Finder doesn't mean it's executable... >> if this is an AppleScript, though, you may have better luck working >> with NSAppleScript. >> >>> So, thinking that the 'space' maybe wanking out the >>> 'setLaunchPath' I tried to convert to a 'safe' url path: >>> NSURL *myScriptFileURL = [NSURL fileURLWithPath:t]; >>> ... >>> [task setLaunchPath:[myScriptFileURL absoluteString]]; >>
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]