~ruther/guix-local

efff3dd4c984f0c2e6f8cb63cf109a6c7b89dea0 — Ludovic Courtès 8 years ago 50942a6
scripts: Use 'args-fold*' for command that do not honor build flags.

Fixes <https://bugs.gnu.org/28984>.
Reported by Eric Bavier.

* guix/scripts/challenge.scm (guix-challenge): Use 'args-fold*' instead
of 'parse-command-line'.
* guix/scripts/size.scm (guix-size): Likewise.
* guix/scripts/weather.scm (guix-weather): Likewise.
3 files changed, 18 insertions(+), 4 deletions(-)

M guix/scripts/challenge.scm
M guix/scripts/size.scm
M guix/scripts/weather.scm
M guix/scripts/challenge.scm => guix/scripts/challenge.scm +6 -1
@@ 278,7 278,12 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n"))

(define (guix-challenge . args)
  (with-error-handling
    (let* ((opts     (parse-command-line args %options (list %default-options)))
    (let* ((opts     (args-fold* args %options
                                 (lambda (opt name arg . rest)
                                   (leave (G_ "~A: unrecognized option~%") name))
                                 (lambda (arg result)
                                   (alist-cons 'argument arg result))
                                 %default-options))
           (files    (filter-map (match-lambda
                                   (('argument . file) file)
                                   (_ #f))

M guix/scripts/size.scm => guix/scripts/size.scm +6 -1
@@ 291,7 291,12 @@ Report the size of PACKAGE and its dependencies.\n"))

(define (guix-size . args)
  (with-error-handling
    (let* ((opts     (parse-command-line args %options (list %default-options)))
    (let* ((opts     (args-fold* args %options
                                 (lambda (opt name arg . rest)
                                   (leave (G_ "~A: unrecognized option~%") name))
                                 (lambda (arg result)
                                   (alist-cons 'argument arg result))
                                 %default-options))
           (files    (filter-map (match-lambda
                                   (('argument . file) file)
                                   (_ #f))

M guix/scripts/weather.scm => guix/scripts/weather.scm +6 -2
@@ 204,8 204,12 @@ Report the availability of substitutes.\n"))

(define (guix-weather . args)
  (with-error-handling
    (let* ((opts     (parse-command-line args %options
                                         (list %default-options)))
    (let* ((opts     (args-fold* args %options
                                 (lambda (opt name arg . rest)
                                   (leave (G_ "~A: unrecognized option~%") name))
                                 (lambda (arg result)
                                   (alist-cons 'argument arg result))
                                 %default-options))
           (urls     (assoc-ref opts 'substitute-urls))
           (systems  (match (filter-map (match-lambda
                                          (('system . system) system)