help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Better way to make sure external command exists in the system?


From: Daniel Martín
Subject: Re: Better way to make sure external command exists in the system?
Date: Fri, 19 Mar 2021 14:57:34 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (darwin)

Jean Louis <bugs@gnu.support> writes:

> I have changed the OS on one computer and noticed that my Emacs Lisp
> programs use external commands like: mailutils, mail, pandoc,
> markdown, and others. Sometimes I was hard coding the path names like
> /usr/local/bin and now some commands changed to /usr/bin
>
> And some functions should not even run if external command does not
> exist. I would even like to stop loading the .el program if necessary
> external programs do not exist in the system.
>
> For that reason I would do some changes:
>
> - instead of hard coding the program name within quotes, I will use
>   variable. Instead of (shell-command "mogrify ...") I will rather use
>   something like (shell-command (format "%s ..." mogrify-command))
>
> - variables for commands I would place at beginning of programs
>

Yes, I think that using a variable instead of a hardcoded string is
recommended.

> - before variables get defined, I would use `executable-find' but I
>   would like for the program loading to fail if those external
>   programs cannot be found.

Why do you think that checking for the existence of programs on load is
better? I think it would slow down loading the module, and the benefits
are not clear to me.  For example, the Elisp module may still be useful
even if it cannot call external programs.

Why is it better than simply calling `executable-find' when invoking a
command that depends on an external program?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]