Ludovic Courtès (2015-10-26 00:42 +0300) wrote: > Alex Kost <alez...@gmail.com> skribis: > >> Ludovic Courtès (2015-10-21 15:54 +0300) wrote: >> >>> Hello! >>> >>> We now have a number of importers, which is great, but so far we had no >>> support to update packages once they had been imported, even though most >>> of the code to do that already is in the importer. >>> >>> So commit 0a7c5a09 generalizes the upstream-tracking code from (guix >>> gnu-maintenance) a bit, such that we can then easily define “updaters” >>> based on the import code. As an example, subsequent commits add an >>> updater for ELPA and one for CRAN. The end result is: >>> >>> >>> $ ./pre-inst-env guix refresh -t cran -t elpa >>> gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from >>> 0.10.0 to 0.11.0 >>> gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 >>> to 11.88.9 >>> >>> (When ‘-t’ is omitted, all the updaters are used.) >> >> Great! What about instead of (or along with) "-t cran -t elpa", use a >> comma separated list as it is done in "guix lint --checkers=..."? > > I agree it would be more consistent (I guess I was a bit lazy here…) > Would you like to make this change? Otherwise I can give it a go.
Yes, I'd like. The patch is attached, thanks!
>From 4a5132f171dfe6bac99661e75e7c5e53c4f74116 Mon Sep 17 00:00:00 2001 From: Alex Kost <alez...@gmail.com> Date: Tue, 27 Oct 2015 21:13:05 +0300 Subject: [PATCH] refresh: Support comma separated updater types. * guix/scripts/refresh.scm (%options): Handle comma separated types for '--type' option. (guix-refresh): Adjust accordingly. (show-help): Likewise. * doc/guix.texi (Invoking guix refresh): Document it. --- doc/guix.texi | 6 +++--- guix/scripts/refresh.scm | 14 ++++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 1bb7125..6fede5d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4263,8 +4263,8 @@ inconvenient. @item --type=@var{updater} @itemx -t @var{updater} -Select only packages handled by @var{updater}. Currently, @var{updater} -may be one of: +Select only packages handled by @var{updater} (may be a comma separated +list of updaters). Currently, @var{updater} may be one of: @table @code @item gnu @@ -4279,7 +4279,7 @@ For instance, the following commands only checks for updates of Emacs packages hosted at @code{elpa.gnu.org} and updates of CRAN packages: @example -$ guix refresh -t elpa -t cran +$ guix refresh --type=elpa,cran gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0 gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9 @end example diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index a66b3f9..b2c9db0 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -69,7 +69,8 @@ arg))))) (option '(#\t "type") #t #f (lambda (opt name arg result) - (alist-cons 'updater (string->symbol arg) result))) + (let ((names (map string->symbol (string-split arg #\,)))) + (alist-cons 'updaters names result)))) (option '(#\L "list-updaters") #f #f (lambda args (list-updaters-and-exit))) @@ -114,7 +115,8 @@ specified with `--select'.\n")) -s, --select=SUBSET select all the packages in SUBSET, one of `core' or `non-core'")) (display (_ " - -t, --type=UPDATER restrict to updates from UPDATER--e.g., 'gnu'")) + -t, --type=UPDATER,... restrict to updates from the specified updaters + (e.g., 'gnu')")) (display (_ " -L, --list-updaters list available updaters and exit")) (display (_ " @@ -209,15 +211,15 @@ downloaded and authenticated; not updating~%") (define (options->updaters opts) ;; Return the list of updaters to use. (match (filter-map (match-lambda - (('updater . name) - (lookup-updater name)) + (('updaters . names) + (map lookup-updater names)) (_ #f)) opts) (() ;; Use the default updaters. %updaters) - (lst - lst))) + (lists + (apply append lists)))) (define (keep-newest package lst) ;; If a newer version of PACKAGE is already in LST, return LST; otherwise -- 2.5.0