[bug#77647] home: mail: Add G-expression support to msmtp configuration.

Message ID d6eb3d010681533792ed49cb63f685e5fc7830fb.1744121220.git.romain.garbage@inria.fr
State New
Headers
Series [bug#77647] home: mail: Add G-expression support to msmtp configuration. |

Commit Message

Romain GARBAGE April 8, 2025, 2:07 p.m. UTC
  * 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
---
 gnu/home/services/mail.scm | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)


base-commit: 61fe7d1749720d4e6f0feb00a8baa8ca1606e1a4
  

Comments

Ludovic Courtès April 9, 2025, 9:54 a.m. UTC | #1
Romain GARBAGE <romain.garbage@inria.fr> skribis:

> * 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

Pushed as c88f98bb3ca2616baea6b1e452cc900cc9c87503 with minor edits to
the commit log.  Thanks! :-)
  

Patch

diff --git a/gnu/home/services/mail.scm b/gnu/home/services/mail.scm
index 5445c82c67..78d614dc84 100644
--- a/gnu/home/services/mail.scm
+++ b/gnu/home/services/mail.scm
@@ -49,9 +49,14 @@  (define-module (gnu home services mail)
             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-boolean field-name value)
 (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 @@  (define-configuration msmtp-configuration
     "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))