On Apr 10, 2014, at 2:52 PM, Colas B wrote:

> Hi, 
> 
> thanks for your answers !
> Your idea sounds good. What can I do if I want both shells invoked from 
> programs and login shells to have the same initialization script? Shall I 
> write a new script that runs first ~/.login and then myprogram ? Or is there 
> a simplier way?
> 
> In my case, myprogram is pdflatex (with the -shell-escape option) and 
> myauxprogram is gnuplot.

The best approach may be a complicated affair. IMHO it is better to explicitly 
inject the environment that you want for the task, possibly with preference 
settings to specify non-standard paths and additional environment variables. 
The problem with setting a login-like environment is that you need to know what 
shell is being used. There may be a way to discover that, and then you could 
invoke myprogram via the shell. E.g.:
        /path/to/bash -l -c myprogram arguments

Syntax will likely be similar for all shells, and many IIRC will accept -l or 
--login to designate a login shell.

Note that this approach comes with a number of security implications, and 
unix-ey folks like me would tell you to not do that and instead use the first 
approach I mention.

> Le Jeudi 10 avril 2014 16h32, Jens Alfke <j...@mooseyard.com> a écrit :
> 
> On Apr 10, 2014, at 6:23 AM, Keary Suska <cocoa-...@esoteritech.com> wrote:
> 
>> This is more likely a shell scripting issue, rather than am NSTask issue, 
>> unless sandboxing is somehow interfering, and you are obscuring the issue by 
>> not telling us at least how myprogram is locating myauxprogram. The most 
>> likely culprit is that the invocation of myauxprogram in myprogram is a 
>> relative path that relies on the PATH environment variable that is properly 
>> set by the shell, but you don't set in NSTask.
>> 
> 
> Agreed. A problem I’ve run into several times is that shells invoked from 
> programs are not login shells, so they don’t run the same initialization 
> scripts as the shell you use in a terminal. (For instance, a csh login shell 
> runs ~/.login on startup as well as ~/.cshrc, but a non-login shell doesn’t. 
> A similar thing happens with bash but I can never remember which scripts are 
> involved.) If you customize your $PATH in the login-shell startup script, 
> then a shellscript run outside a terminal window won’t have the same path.

Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"


_______________________________________________

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to