mirror of
https://codeberg.org/guix/guix.git
synced 2026-01-25 03:55:08 -06:00
home: services: msmtp: Accept g-expressions for ‘password-eval’.
This allows users to specify:
(password-eval #~(string-append
#$(file-append libsecret "/bin/secret-tool")
"…"))
* gnu/home/services/mail.scm (string-or-gexp?): New variable.
(maybe-string-or-gexp): New record type
(msmtp-configuration-serialize-string-or-gexp): New variable.
(msmtp-configuration) [password-eval]: Change type.
Change-Id: Id3016956250c447b301b40f29a6509d57058be49
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
ac83a22375
commit
c88f98bb3c
1 changed files with 9 additions and 1 deletions
|
|
@ -49,9 +49,14 @@
|
|||
msmtp-account-name
|
||||
msmtp-account-configuration))
|
||||
|
||||
(define (string-or-gexp? obj)
|
||||
(or (string? obj)
|
||||
(gexp? obj)))
|
||||
|
||||
(define-maybe string (prefix msmtp-configuration-))
|
||||
(define-maybe boolean (prefix msmtp-configuration-))
|
||||
(define-maybe integer (prefix msmtp-configuration-))
|
||||
(define-maybe string-or-gexp (prefix msmtp-configuration-))
|
||||
|
||||
;; Serialization of 'msmtp'.
|
||||
(define (uglify-symbol field-name)
|
||||
|
|
@ -68,6 +73,9 @@
|
|||
(define (msmtp-configuration-serialize-string field-name value)
|
||||
#~(string-append #$(uglify-symbol field-name) " " #$value "\n"))
|
||||
|
||||
(define msmtp-configuration-serialize-string-or-gexp
|
||||
msmtp-configuration-serialize-string)
|
||||
|
||||
(define (msmtp-configuration-serialize-maybe-string-no-underscore field-name value)
|
||||
#~(if #$(maybe-value-set? value)
|
||||
(string-append
|
||||
|
|
@ -148,7 +156,7 @@ unless TLS without STARTTLS is used, in which case it is 465 (\"smtps\").")
|
|||
"Set the envelope-from address.")
|
||||
|
||||
(password-eval
|
||||
maybe-string
|
||||
maybe-string-or-gexp
|
||||
"Set the password for authentication to the output (stdout) of the command cmd."
|
||||
(serializer msmtp-configuration-serialize-maybe-string-no-underscore))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue