Re: [NTG-context] check installed program using Lua

2021-11-02 Thread Pablo Rodriguez via ntg-context
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

2021-11-02 Thread Pablo Rodriguez via ntg-context
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

2021-11-01 Thread Hans Hagen via ntg-context

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

2021-11-01 Thread Taco Hoekwater via ntg-context


> 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

2021-11-01 Thread Pablo Rodriguez via ntg-context
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
___