From: "Clément Lassieur" <clement@lassieur.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 30657-done@debbugs.gnu.org
Subject: bug#30657: [PATCH] services: messaging: Prosody config supports file-like objects.
Date: Sat, 03 Mar 2018 18:38:22 +0100 [thread overview]
Message-ID: <87zi3pkqk1.fsf@lassieur.org> (raw)
In-Reply-To: <87bmg5b4xu.fsf@gnu.org>
Ludovic Courtès <ludo@gnu.org> writes:
>> +(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))))
>
> ?
I did it.
>> +(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.
The problem is that the check happens when the user evaluates
(prosody-configuration), which allow them to know right away about type
errors, without running "guix system reconfigure". So the user doesn't
even need a store.
Plus, not everything should go to the store. For example, certificate
keys shouldn't, as they are private. Thus, having both 'file-object?'
and 'file-name?' makes sense to me.
> Apart from this the patch LGTM, thank you!
Pushed as bdcf0e6fd484a54240a98ddf8b6fa433c1b9bd6c, with the
modifications you suggested.
Thank you for the review!
Clément
next prev parent reply other threads:[~2018-03-03 17:39 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-28 22:25 [bug#30657] Add support for file-like objects to the Prosody configuration Clément Lassieur
2018-02-28 22:28 ` [bug#30657] [PATCH 1/4] services: utils: Add 'push-tokens' and 'with-tokens-to-list' Clément Lassieur
2018-02-28 22:28 ` [bug#30657] [PATCH 2/4] gexp: Add 'file-like?' Clément Lassieur
2018-03-02 16:51 ` Ludovic Courtès
2018-03-03 1:44 ` Clément Lassieur
2018-03-03 14:38 ` Ludovic Courtès
2018-02-28 22:28 ` [bug#30657] [PATCH 3/4] services: utils: move 'flatten' from (gnu services web) Clément Lassieur
2018-02-28 22:28 ` [bug#30657] [PATCH 4/4] services: messaging: Prosody config supports file-like objects Clément Lassieur
2018-03-02 17:00 ` [bug#30657] Add support for file-like objects to the Prosody configuration Ludovic Courtès
2018-03-03 1:33 ` [bug#30657] [PATCH] services: messaging: Prosody config supports file-like objects Clément Lassieur
2018-03-03 11:43 ` Clément Lassieur
2018-03-03 14:27 ` Ludovic Courtès
2018-03-03 14:37 ` Ludovic Courtès
2018-03-03 17:38 ` Clément Lassieur [this message]
2018-03-03 1:40 ` [bug#30657] Add support for file-like objects to the Prosody configuration Clément Lassieur
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zi3pkqk1.fsf@lassieur.org \
--to=clement@lassieur.org \
--cc=30657-done@debbugs.gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.