GNU bug report logs -
#30657
Add support for file-like objects to the Prosody configuration
Previous Next
Full log
View this message in rfc822 format
Hello,
Clément Lassieur <clement <at> lassieur.org> skribis:
> * doc/guix.texi (Messaging Services): Update accordingly.
> * gnu/services/configuration.scm (serialize-configuration,
> serialize-maybe-stem, serialize-package): Return strings or string-valued
> gexps (these procedures were only used for their side-effects).
> (file-like?): New exported procedure.
> * gnu/services/messaging.scm (serialize-field, serialize-field-list,
> enclose-quotes, serialize-raw-content, serialize-ssl-configuration,
> serialize-virtualhost-configuration-list,
> serialize-int-component-configuration-list,
> serialize-ext-component-configuration-list,
> serialize-virtualhost-configuration, serialize-int-component-configuration,
> serialize-ext-component-configuration, serialize-prosody-configuration):
> Return strings or string-valued gexps and stop printing.
> (prosody-activation): Use SERIALIZE-PROSODY-CONFIGURATION's return value with
> MIXED-TEXT-FILE instead of using its output with PLAIN-FILE.
> (serialize-non-negative-integer, serialize-non-negative-integer-list): Convert
> numbers to strings.
> (file-object?, serialize-file-object, file-object-list?,
> serialize-file-object-list): New procedures.
> (ssl-configuration)[capath, cafile], (prosody-configuration)[plugin-paths,
> groups-file]: Replace FILE-NAME with FILE-OBJECT.
[...]
> + #~(string-append
> + #$@(map (lambda (field)
> + ((configuration-field-serializer field)
> + (configuration-field-name field)
> + ((configuration-field-getter field) config)))
> + fields)))
Awesome, I find it clearer. :-)
> +(define (file-like? val)
> + (and (struct? val) ((@@ (guix gexp) lookup-compiler) val)))
I’m not fond of the idea of using @@ in real code. :-)
Could you move ‘file-like?’ to (guix gexp), with a docstring, and with
‘->bool’ to avoid exposing internal details:
(define (file-like? value)
(and (struct? value) (->bool (lookup-compiler value))))
?
> +(define (file-object? val)
> + (or (file-like? val) (file-name? val)))
Do we need this predicate? After all, all we can say is that a file
name is necessarily a string (or a string-valued gexp), but a string is
not necessarily a file name (IOW there’s no disjoint type for file
names.)
I suppose the configuration mechanism needs it though, right? In that
context it’s probably OK.
Apart from this the patch LGTM, thank you!
Ludo’.
This bug report was last modified 7 years and 167 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.