diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-03-12 18:30:05 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-03-12 18:32:16 +0100 |
commit | 2843fed0e973145f01fb2004c99aca8e8837b332 (patch) | |
tree | 557ce76dee262145406599d58148b03763f54bcc | |
parent | 71bb485541328cdce214ada44be998570571bf36 (diff) | |
download | patches-2843fed0e973145f01fb2004c99aca8e8837b332.tar patches-2843fed0e973145f01fb2004c99aca8e8837b332.tar.gz |
weather: Allow for multiple '--manifest' options.
* guix/scripts/weather.scm (guix-weather)[package-list]: Account for all
the 'manifest entries in OPTS.
* doc/guix.texi (Invoking guix weather): Document it.
-rw-r--r-- | doc/guix.texi | 3 | ||||
-rw-r--r-- | guix/scripts/weather.scm | 22 |
2 files changed, 15 insertions, 10 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index ca21857a31..9a5b5f7fbe 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10830,6 +10830,9 @@ specified in @var{file}. @var{file} must contain a @dfn{manifest}, as with the @code{-m} option of @command{guix package} (@pxref{Invoking guix package}). +This option can be repeated several times, in which case the manifests +are concatenated. + @item --coverage[=@var{count}] @itemx -c [@var{count}] Report on substitute coverage for packages: list packages with at least diff --git a/guix/scripts/weather.scm b/guix/scripts/weather.scm index 60915d3451..733986be0c 100644 --- a/guix/scripts/weather.scm +++ b/guix/scripts/weather.scm @@ -499,17 +499,19 @@ SERVER. Display information for packages with at least THRESHOLD dependents." (define (guix-weather . args) (define (package-list opts) ;; Return the package list specified by OPTS. - (let ((file (assoc-ref opts 'manifest)) - (base (filter-map (match-lambda - (('argument . spec) - (specification->package spec)) - (_ - #f)) - opts))) - (if (and (not file) (null? base)) + (let ((files (filter-map (match-lambda + (('manifest . file) file) + (_ #f)) + opts)) + (base (filter-map (match-lambda + (('argument . spec) + (specification->package spec)) + (_ + #f)) + opts))) + (if (and (null? files) (null? base)) (all-packages) - (append base - (if file (load-manifest file) '()))))) + (append base (append-map load-manifest files))))) (with-error-handling (parameterize ((current-terminal-columns (terminal-columns)) |