On 2024-05-21 17:33:24 +0200, Tristan Kohl via wrote:
> Hello Felix,
>
> my last message was not to critizise your help but rather my frustration with 
> my own limited progress. I really appreciate the help!
>
> program-file at least results in a usable thing however since the script gets 
> executed by smard I get the "command not found" in my logs. It seems like 
> curl is not in PATH for smartd. Do I need to import something into the gexp?
>
> Also those env variables are defined by smartd during runtime depending on 
> which drive produced the error. Therefore I need shell expansion/env 
> variables and have to use system (without *) imho.
>
> This is the current state:
>
> (define-smartd-send-ntfy
>   (program-file "send-ntfy"
>     #~(system
>       (string-append "curl " "-H \"Title: $SMARTD_SUBJECT\" " ...))))

Ignoring the obvious quoting issues here (what Felix does with `getenv' seems
much safer, and should produce the same result?),

>
> Note: when using system* the error is:
> In execvp of curl: No such file or directory

This should be solvable by using `file-append', so, basing on the system*
variant, something like:

    #~(system* #$(file-append curl "/bin/curl") <other-arguments-here>)

Should invoke curl by absolute path.  (You need import (gnu packages curl) of
course.)

Hope this helps,
Tomas

--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

Attachment: signature.asc
Description: PGP signature

Reply via email to