GNU bug report logs - #30657
Add support for file-like objects to the Prosody configuration

Previous Next

Package: guix-patches;

Reported by: Clément Lassieur <clement <at> lassieur.org>

Date: Wed, 28 Feb 2018 22:27:02 UTC

Severity: normal

Done: Clément Lassieur <clement <at> lassieur.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Clément Lassieur <clement <at> lassieur.org>
Subject: bug#30657: closed (Re: [PATCH] services: messaging: Prosody
 config supports file-like objects.)
Date: Sat, 03 Mar 2018 17:39:01 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#30657: Add support for file-like objects to the Prosody configuration

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 30657 <at> debbugs.gnu.org.

-- 
30657: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=30657
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Clément Lassieur <clement <at> lassieur.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 30657-done <at> debbugs.gnu.org
Subject: Re: [PATCH] services: messaging: Prosody config supports file-like
 objects.
Date: Sat, 03 Mar 2018 18:38:22 +0100
Ludovic Courtès <ludo <at> 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

[Message part 3 (message/rfc822, inline)]
From: Clément Lassieur <clement <at> lassieur.org>
To: guix-patches <at> gnu.org
Subject: Add support for file-like objects to the Prosody configuration
Date: Wed, 28 Feb 2018 23:25:25 +0100
Hello,

These patches add support for file-like objects to the Prosody service
configuration.  The idea is to replace this mechanism (which is used
very often):

    (plain-file
      (with-output-to-string
         ...
         (format #t ...)
         ...))

with this one:

    (mixed-text-file
      (flatten
        (with-tokens-to-list
           ...
           (push-tokens ...)
           ...))

The point is that tokens don't have to be strings.

Comments are welcome!
Clément



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.