Subject: Re: [bug#33286] Add 'list-formats' to 'guix pack'

From: Efraim Flashner <[email-masked]>
Date: Tue, 27 Nov 2018 19:26:38 +0200

On Tue, Nov 06, 2018 at 04:31:59PM +0100, Ludovic Courtès wrote:
> Hello,
> 
> Efraim Flashner <[email-masked]> skribis:
> 
> > From af9a132a662f1d703df1c32278a45d2adca146ed Mon Sep 17 00:00:00 2001
> > From: Efraim Flashner <[email-masked]>
> > Date: Tue, 6 Nov 2018 11:50:48 +0200
> > Subject: [PATCH] pack: List the available formats.
> >
> > * guix/scripts/pack.scm (show-formats): New variable.
> > (%options, show-help): Add 'list-formats' option.
> 
> [...]
> 
> > @@ -551,6 +552,18 @@ please email '~a'~%")
> >      (squashfs . ,squashfs-image)
> >      (docker  . ,docker-image)))
> >  
> > +(define (show-formats)
> > +  ;; Print the supported pack formats.
> > +  (display (G_ "The supported formats for 'guix pack' are:"))
> > +  (newline)
> > +  (display (G_ "
> > +  tarball       A self-contained tarball, ready to run on another machine."))
> > +  (display (G_ "
> > +  squashfs      A squashfs image, ready for 'cluster engines' and the like."))
> 
> I’d write “Squashfs image suitable for Singularity” and remove “A” from
> each.
> 
> Also, since we have the ‘%formats’ alist right above, what about
> adjusting it so that it contains each format description, and then
> ‘show-formats’ would just traverse it?
> 
> You could do:
> 
>   (define-record-type <image-format>
>     (image-format proc description)
>     image-format?
>     (proc        image-format-procedure)
>     (description image-format-description))
> 
>   (define %formats
>     (let-syntax ((description (syntax-rules () ((_ str) str))))
>       `((tarball . ,(image-format self-contained-tarball
>                                   (description "foo bar")))
>         …)))
> 
> The dummy ‘description’ macro is here to allow ‘xgettext’ to catch the
> translatable strings without actually translating them right away;
> ‘show-formats’ will have to call ‘G_’ for that.
> 
> WDYT?
> 
> Ludo’.

I do like the idea, but I haven't been able to get it to work. In the
mean time I've committed this as db08ea40873ae20507bc40d34a56dea1b8ce8f0e
so we at least get the benefits of having it here.

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted