From 56aef188a2a014e254d3c93c8a79cd1fb5a1ece6 Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Tue, 28 Feb 2017 23:02:14 +0100 Subject: services: dovecot: Reimplement proper configuration functions. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 --- gnu/services/mail.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gnu/services') diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm index dbc5de9e62..05978e0068 100644 --- a/gnu/services/mail.scm +++ b/gnu/services/mail.scm @@ -69,6 +69,27 @@ (define-module (gnu services mail) ;;; ;;; 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 (comma-separated-string-list? val) (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 (colon-separated-file-name-list? val) (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) -- cgit v1.2.3