guix-commits
[Top][All Lists]
Advanced

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

01/02: services: dovecot: Reimplement proper configuration functions.


From: Clément Lassieur
Subject: 01/02: services: dovecot: Reimplement proper configuration functions.
Date: Sun, 12 Mar 2017 14:23:57 -0400 (EDT)

snape pushed a commit to branch master
in repository guix.

commit 56aef188a2a014e254d3c93c8a79cd1fb5a1ece6
Author: Clément Lassieur <address@hidden>
Date:   Tue Feb 28 23:02:14 2017 +0100

    services: dovecot: Reimplement proper configuration functions.
    
    * gnu/services/mail.scm (uglify-field-name, serialize-field, 
serialize-string)
    (space-separated-string-list?, serialize-space-separated-string-list)
    (file-name?, serialize-file-name, serialize-boolean): Add them.
    
    These functions were inadvertently changed while being factorized in
    gnu/service/configuration.scm.
    
    Signed-off-by: Clément Lassieur <address@hidden>
---
 gnu/services/mail.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index dbc5de9..05978e0 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -69,6 +69,27 @@
 ;;;
 ;;; Code:
 
+(define (uglify-field-name field-name)
+  (let ((str (symbol->string field-name)))
+    (string-join (string-split (if (string-suffix? "?" str)
+                                   (substring str 0 (1- (string-length str)))
+                                   str)
+                               #\-)
+                 "_")))
+
+(define (serialize-field field-name val)
+  (format #t "~a=~a\n" (uglify-field-name field-name) val))
+
+(define (serialize-string field-name val)
+  (serialize-field field-name val))
+
+(define (space-separated-string-list? val)
+  (and (list? val)
+       (and-map (lambda (x)
+                  (and (string? x) (not (string-index x #\space))))
+                val)))
+(define (serialize-space-separated-string-list field-name val)
+  (serialize-field field-name (string-join val " ")))
 
 (define (comma-separated-string-list? val)
   (and (list? val)
@@ -78,6 +99,12 @@
 (define (serialize-comma-separated-string-list field-name val)
   (serialize-field field-name (string-join val ",")))
 
+(define (file-name? val)
+  (and (string? val)
+       (string-prefix? "/" val)))
+(define (serialize-file-name field-name val)
+  (serialize-string field-name val))
+
 (define (colon-separated-file-name-list? val)
   (and (list? val)
        ;; Trailing slashes not needed and not
@@ -85,6 +112,9 @@
 (define (serialize-colon-separated-file-name-list field-name val)
   (serialize-field field-name (string-join val ":")))
 
+(define (serialize-boolean field-name val)
+  (serialize-string field-name (if val "yes" "no")))
+
 (define (non-negative-integer? val)
   (and (exact-integer? val) (not (negative? val))))
 (define (serialize-non-negative-integer field-name val)



reply via email to

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