[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#30657] [PATCH] services: messaging: Prosody config supports file-li
From: |
Clément Lassieur |
Subject: |
[bug#30657] [PATCH] services: messaging: Prosody config supports file-like objects. |
Date: |
Sat, 03 Mar 2018 12:43:28 +0100 |
User-agent: |
mu4e 1.0; emacs 25.3.1 |
With a better use of 'format'...
Clément Lassieur <address@hidden> writes:
> (define (serialize-field field-name val)
> - (format #t "~a = ~a;\n" (uglify-field-name field-name) val))
> + #~(string-append
> + #$(format #f "~a = " (uglify-field-name field-name)) #$val ";\n"))
#~(format #f "~a = ~a;\n" #$(uglify-field-name field-name) #$val))
> (define (serialize-field-list field-name val)
> (serialize-field field-name
> - (with-output-to-string
> - (lambda ()
> - (format #t "{\n")
> - (for-each (lambda (x)
> - (format #t "~a;\n" x))
> - val)
> - (format #t "}")))))
> + #~(string-append
> + "{\n"
> + #$@(map (lambda (x)
> + #~(string-append #$x ";\n"))
> + val)
> + "}")))
(ice-9 format) can do miracles ;-)
(serialize-field field-name #~(format #f "address@hidden;\n~}}"
address@hidden)))
> (define (enclose-quotes s)
> - (format #f "\"~a\"" s))
> + #~(string-append "\"" #$s "\""))
#~(format #f "\"~a\"" #$s))
> @@ -273,9 +285,10 @@ can create such a file with:
> (maybe-string 'disabled)
> "Password for encrypted private keys."))
> (define (serialize-ssl-configuration field-name val)
> - (format #t "ssl = {\n")
> - (serialize-configuration val ssl-configuration-fields)
> - (format #t "};\n"))
> + #~(string-append
> + "ssl = {\n"
> + #$(serialize-configuration val ssl-configuration-fields)
> + "};\n"))
#~(format #f "ssl = {\n~a};\n"
#$(serialize-configuration val ssl-configuration-fields)))
> (define-configuration opaque-prosody-configuration
> (prosody
> @@ -646,13 +666,10 @@ See also @url{https://prosody.im/doc/modules/mod_muc}."
> (default-certs-dir "/etc/prosody/certs")
> (data-path (prosody-configuration-data-path config))
> (pidfile-dir (dirname (prosody-configuration-pidfile config)))
> - (config-str
> - (if (opaque-prosody-configuration? config)
> - (opaque-prosody-configuration-prosody.cfg.lua config)
> - (with-output-to-string
> - (lambda ()
> - (serialize-prosody-configuration config)))))
> - (config-file (plain-file "prosody.cfg.lua" config-str)))
> + (config-str (if (opaque-prosody-configuration? config)
> + (opaque-prosody-configuration-prosody.cfg.lua
> config)
> + (serialize-prosody-configuration config)))
> + (config-file (mixed-text-file "prosody.cfg.lua" config-str)))
> #~(begin
> (use-modules (guix build utils))
> (define %user (getpw "prosody"))
(with-imported-modules '((ice-9 format))
#~(begin
(use-modules (ice-9 format))
#$(serialize-prosody-configuration config)))))