Message ID | 20210115163953.53721-1-zimon.toutoune@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | DRAFT: Hint for options. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
Hi! zimoun <zimon.toutoune@gmail.com> skribis: > * guix/scripts/search.scm (define-command): Replace 'args-fold*' by > 'parse-command-line'. > * guix/scripts/show.scm (define-command): Replace 'args-fold*' by > 'parse-command-line'. [...] > - (args-fold* args %options > - (lambda (opt name arg . rest) > - (leave (G_ "~A: unrecognized option~%") name)) > - handle-argument > - '())) > + (parse-command-line args %options '())) In these two cases, you need to pass #:build-options? #f.
Hi Ludo, On Tue, 19 Jan 2021 at 18:20, Ludovic Courtès <ludo@gnu.org> wrote: > zimoun <zimon.toutoune@gmail.com> skribis: > > > * guix/scripts/search.scm (define-command): Replace 'args-fold*' by > > 'parse-command-line'. > > * guix/scripts/show.scm (define-command): Replace 'args-fold*' by > > 'parse-command-line'. > > [...] > > > - (args-fold* args %options > > - (lambda (opt name arg . rest) > > - (leave (G_ "~A: unrecognized option~%") name)) > > - handle-argument > > - '())) > > + (parse-command-line args %options '())) > > In these two cases, you need to pass #:build-options? #f. Ok. One question is: do we replace all the 'args-fold*' by 'parse-command-line' (with the correct arguments)? If yes, the proposal works. Otherwise, the computation of the hint should be moved to elsewhere. But where to avoid to duplicate code (replacing args-fld* by parse-command-line in all guix/scripts/ fixes the issue). Note that the "issue" is to handle the error. For example, if one moves "option-hint" to "args-fold*" then the hint would not work for all the commands. What is your suggestion? All the best, simon
diff --git a/guix/scripts/search.scm b/guix/scripts/search.scm index 0c9e6af07b..1ac8089e6b 100644 --- a/guix/scripts/search.scm +++ b/guix/scripts/search.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,11 +67,7 @@ This is an alias for 'guix package -s'.\n")) result)) (define opts - (args-fold* args %options - (lambda (opt name arg . rest) - (leave (G_ "~A: unrecognized option~%") name)) - handle-argument - '())) + (parse-command-line args %options '())) (unless (assoc-ref opts 'query) (leave (G_ "missing arguments: no regular expressions to search for~%"))) diff --git a/guix/scripts/show.scm b/guix/scripts/show.scm index 535d03c1a6..6dfc082be3 100644 --- a/guix/scripts/show.scm +++ b/guix/scripts/show.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2019, 2021 Simon Tournier <zimon.toutoune@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,11 +66,7 @@ This is an alias for 'guix package --show='.\n")) result)) (define opts - (args-fold* args %options - (lambda (opt name arg . rest) - (leave (G_ "~A: unrecognized option~%") name)) - handle-argument - '())) + (parse-command-line args %options '())) (unless (assoc-ref opts 'query) (leave (G_ "missing arguments: no package to show~%")))