[PATCH] guix describe: Add '--list-formats'

  • Done
  • quality assurance status badge
Details
2 participants
  • Ekaitz Zarraga
  • Ludovic Courtès
Owner
unassigned
Submitted by
Ekaitz Zarraga
Severity
normal

Debbugs page

Ekaitz Zarraga wrote 5 years ago
(name . guix-patches@gnu.org)(address . guix-patches@gnu.org)
EEVPzoD8DYR1ewUfToDbqEE2qbjjUz46pN9hp7cERNM_OtP4GkJHBffPhdv_F_Z13Dh9mfBYVAy2xv_nUyy2Wza92KC5oAH_aeY0_ukCX1Y=@elenq.tech
Hi,

Added `--list-formats` option to `guix describe` in order to improve user experience as discussed here:


Hope it's useful.

Ekaitz
---


From 75f16431475fb692228f69be06baa635eb6fa5b7 Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Thu, 14 May 2020 17:25:03 +0200
Subject: [PATCH] guix describe: Add '--list-formats'

* guix/scripts/describe.scm (%available-formats): New variable.
(list-fortmats): New procedure.
(%options, show-help): Add --list-formats
---
guix/scripts/describe.scm | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)

Toggle diff (49 lines)
diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm
index f13f221da9..029098cea2 100644
--- a/guix/scripts/describe.scm
+++ b/guix/scripts/describe.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -42,13 +43,26 @@
;;; Command-line options.
;;;

+(define %available-formats '("human" "channels" "json" "recutils"))
+
+(define (list-formats)
+ (display (G_ "The available formats are:\n"))
+ (newline)
+ (for-each (lambda (f)
+ (format #t " - ~a~%" f))
+ %available-formats))
+
(define %options
;; Specifications of the command-line options.
(list (option '(#\f "format") #t #f
(lambda (opt name arg result)
- (unless (member arg '("human" "channels" "json" "recutils"))
+ (unless (member arg %available-formats)
(leave (G_ "~a: unsupported output format~%") arg))
(alist-cons 'format (string->symbol arg) result)))
+ (option '("list-formats") #f #f
+ (lambda (opt name arg result)
+ (list-formats)
+ (exit 0)))
(option '(#\p "profile") #t #f
(lambda (opt name arg result)
(alist-cons 'profile (canonicalize-profile arg)
@@ -70,6 +84,8 @@
Display information about the channels currently in use.\n"))
(display (G_ "
-f, --format=FORMAT display information in the given FORMAT"))
+ (display (G_ "
+ --list-formats display available formats"))
(display (G_ "
-p, --profile=PROFILE display information about PROFILE"))
(newline)
--
2.26.1
Ludovic Courtès wrote 5 years ago
(name . Ekaitz Zarraga)(address . ekaitz@elenq.tech)(address . 41265@debbugs.gnu.org)
87r1vjpyu3.fsf@gnu.org
Ekaitz Zarraga <ekaitz@elenq.tech> skribis:

Toggle quote (7 lines)
>>From 75f16431475fb692228f69be06baa635eb6fa5b7 Mon Sep 17 00:00:00 2001
> From: Ekaitz Zarraga <ekaitz@elenq.tech>
> Date: Thu, 14 May 2020 17:25:03 +0200
> Subject: [PATCH] guix describe: Add '--list-formats'
>
> * guix/scripts/describe.scm (%available-formats): New variable.
> (list-fortmats): New procedure.
^^
Typo.

Toggle quote (2 lines)
> (%options, show-help): Add --list-formats

Could you also add the option to doc/guix.texi?

TIA!

Ludo’.
Ekaitz Zarraga wrote 5 years ago
(name . Ludovic Courtès)(address . ludo@gnu.org)(name . 41265@debbugs.gnu.org)(address . 41265@debbugs.gnu.org)
B6z5gRXPpiQ8xXhXVSzLDUl1TlGOx8zLepse60lwxHORnoF5nUVAMFL_MEFfDWhptX0DktsmSyHeNzzSFGrfCAoq4TGr6XwLDMOoFf_ct00=@elenq.tech
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Saturday, May 16, 2020 7:35 PM, Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (25 lines)
> Ekaitz Zarraga ekaitz@elenq.tech skribis:
>
> > > From 75f16431475fb692228f69be06baa635eb6fa5b7 Mon Sep 17 00:00:00 2001
> > > From: Ekaitz Zarraga ekaitz@elenq.tech
> > > Date: Thu, 14 May 2020 17:25:03 +0200
> > > Subject: [PATCH] guix describe: Add '--list-formats'
> >
> > * guix/scripts/describe.scm (%available-formats): New variable.
> > (list-fortmats): New procedure.
> >
>
> ^^
>
>
> Typo.
>
> > (%options, show-help): Add --list-formats
> >
>
> Could you also add the option to doc/guix.texi?
>
> TIA!
>
> Ludo’.

There it goes, not sure if I added it right to the docs, never edited a texi before :)

Cheers!

From f7af79434eb702140ddadb321a4fcaaf197dbf45 Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Sat, 16 May 2020 19:57:18 +0200
Subject: [PATCH] guix describe: Add '--list-formats'

* guix/scripts/describe.scm (%available-formats): New variable.
(list-formats): New procedure.
(%options, show-help): Add --list-formats
* doc/guix.texi: Add --list-formats
---
doc/guix.texi | 3 +++
guix/scripts/describe.scm | 17 ++++++++++++++++-
2 files changed, 19 insertions(+), 1 deletion(-)

Toggle diff (63 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index d043852ac3..de2cbdf6e5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -4475,6 +4475,9 @@ produce a list of channel specifications in JSON format;
produce a list of channel specifications in Recutils format.
@end table

+@item --list-formats
+Display available formats for @option{--format} option.
+
@item --profile=@var{profile}
@itemx -p @var{profile}
Display information about @var{profile}.
diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm
index f13f221da9..7a2dbc453a 100644
--- a/guix/scripts/describe.scm
+++ b/guix/scripts/describe.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -41,14 +42,26 @@
;;;
;;; Command-line options.
;;;
+(define %available-formats '("human" "channels" "json" "recutils"))
+
+(define (list-formats)
+ (display (G_ "The available formats are:\n"))
+ (newline)
+ (for-each (lambda (f)
+ (format #t " - ~a~%" f))
+ %available-formats))

(define %options
;; Specifications of the command-line options.
(list (option '(#\f "format") #t #f
(lambda (opt name arg result)
- (unless (member arg '("human" "channels" "json" "recutils"))
+ (unless (member arg %available-formats)
(leave (G_ "~a: unsupported output format~%") arg))
(alist-cons 'format (string->symbol arg) result)))
+ (option '("list-formats") #f #f
+ (lambda (opt name arg result)
+ (list-formats)
+ (exit 0)))
(option '(#\p "profile") #t #f
(lambda (opt name arg result)
(alist-cons 'profile (canonicalize-profile arg)
@@ -70,6 +83,8 @@
Display information about the channels currently in use.\n"))
(display (G_ "
-f, --format=FORMAT display information in the given FORMAT"))
+ (display (G_ "
+ --list-formats display available formats"))
(display (G_ "
-p, --profile=PROFILE display information about PROFILE"))
(newline)
--
2.26.1
Ludovic Courtès wrote 5 years ago
(name . Ekaitz Zarraga)(address . ekaitz@elenq.tech)(name . 41265@debbugs.gnu.org)(address . 41265-done@debbugs.gnu.org)
87k119iftq.fsf@gnu.org
Hi,

Ekaitz Zarraga <ekaitz@elenq.tech> skribis:

Toggle quote (10 lines)
>>From f7af79434eb702140ddadb321a4fcaaf197dbf45 Mon Sep 17 00:00:00 2001
> From: Ekaitz Zarraga <ekaitz@elenq.tech>
> Date: Sat, 16 May 2020 19:57:18 +0200
> Subject: [PATCH] guix describe: Add '--list-formats'
>
> * guix/scripts/describe.scm (%available-formats): New variable.
> (list-formats): New procedure.
> (%options, show-help): Add --list-formats
> * doc/guix.texi: Add --list-formats

I removed the leading space above and applied it. Thank you!

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 41265@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 41265
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help