Re: [NTG-context] check installed program using Lua
On 11/1/21 5:13 PM, Hans Hagen via ntg-context wrote: > On 11/1/2021 2:26 PM, Pablo Rodriguez via ntg-context wrote: >> [...] >> Is there a way to wrap os.exec() in the sample so that it only runs if >> "dir" is available? >> >> I know that os.name would be an option here, but not in my real world >> document. > > \starttext >\startluacode > if lfs.isfile(tex.jobname .. ".pdf") then > context("YES") > end > if lfs.isfile(file.addsuffix(environment.outputfilename,"pdf")) then > context("YES") > end > if #dir.glob(file.addsuffix(environment.outputfilename,"pdf")) > 0 then > context("YES") > end >\stopluacode > \stoptext Many thanks for your reply, Hans. I can see that I explained my question poorly, but your code fits me in other case. Many thanks for your help, Pablo -- http://www.ousia.tk ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] check installed program using Lua
On 11/1/21 3:10 PM, Taco Hoekwater via ntg-context wrote: >> [...] >> Is there a way to wrap os.exec() in the sample so that it only runs if >> "dir" is available? > > if os.which(‘dir’) then > ... > end > > But note that os.which() may be unreliable in various cases (like it > will fail for shell/command interpreter builtins, in cron jobs, in > special scripted environments, and may incorrectly succeed for > disabled/forbidden commands), as it just runs through the PATH > environment variable to check for executable file existence. Many thanks for your reply, Taco. This is exactly what I needed. > Often times, it is better to just try to run the command to see if > that produces satisfactory results. It makes sense, but I cannot do that on foreign computers. Many thanks for your help again, Pablo -- http://www.ousia.tk ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] check installed program using Lua
On 11/1/2021 2:26 PM, Pablo Rodriguez via ntg-context wrote: Dear list, is there a way if a program is installed on the computer using Lua. I have the following sample: \starttext \startluacode filename = tex.jobname .. ".pdf" os.exec("dir " .. filename) \stopluacode \stoptext Is there a way to wrap os.exec() in the sample so that it only runs if "dir" is available? I know that os.name would be an option here, but not in my real world document. \starttext \startluacode if lfs.isfile(tex.jobname .. ".pdf") then context("YES") end if lfs.isfile(file.addsuffix(environment.outputfilename,"pdf")) then context("YES") end if #dir.glob(file.addsuffix(environment.outputfilename,"pdf")) > 0 then context("YES") end \stopluacode \stoptext - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl - ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] check installed program using Lua
> On 1 Nov 2021, at 14:26, Pablo Rodriguez via ntg-context > wrote: > > Dear list, > > is there a way if a program is installed on the computer using Lua. > > I have the following sample: > > \starttext > \startluacode > filename = tex.jobname .. ".pdf" > os.exec("dir " .. filename) > \stopluacode > \stoptext > > Is there a way to wrap os.exec() in the sample so that it only runs if > "dir" is available? if os.which(‘dir’) then ... end But note that os.which() may be unreliable in various cases (like it will fail for shell/command interpreter builtins, in cron jobs, in special scripted environments, and may incorrectly succeed for disabled/forbidden commands), as it just runs through the PATH environment variable to check for executable file existence. Often times, it is better to just try to run the command to see if that produces satisfactory results. Best wishes, taco — Taco Hoekwater E: t...@bittext.nl genderfluid (all pronouns) ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
[NTG-context] check installed program using Lua
Dear list, is there a way if a program is installed on the computer using Lua. I have the following sample: \starttext \startluacode filename = tex.jobname .. ".pdf" os.exec("dir " .. filename) \stopluacode \stoptext Is there a way to wrap os.exec() in the sample so that it only runs if "dir" is available? I know that os.name would be an option here, but not in my real world document. Many thanks for your help, Pablo -- http://www.ousia.tk ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___