~ruther/guix-local

4b9b3cbbc45afa3e374889847d4ab8673b8b2db2 — Ludovic Courtès 11 years ago 77db91a
refresh: Allow users to refer to specific package versions.

* guix/scripts/refresh.scm (guix-refresh): Use 'specification->package'
  instead of 'find-packages-by-name'.  This allows users to specify
  things like "qt-4.8.6".
* doc/guix.texi (Invoking guix refresh): Add an example.
2 files changed, 8 insertions(+), 11 deletions(-)

M doc/guix.texi
M guix/scripts/refresh.scm
M doc/guix.texi => doc/guix.texi +1 -1
@@ 3285,7 3285,7 @@ In addition, @command{guix refresh} can be passed one or more package
names, as in this example:

@example
guix refresh -u emacs idutils
guix refresh -u emacs idutils gcc-4.8.4
@end example

@noindent

M guix/scripts/refresh.scm => guix/scripts/refresh.scm +7 -10
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;;


@@ 207,16 207,13 @@ update would trigger a complete rebuild."
         (list-dependent? (assoc-ref opts 'list-dependent?))
         (key-download    (assoc-ref opts 'key-download))
         (packages
          (match (concatenate
                  (filter-map (match-lambda
                               (('argument . value)
                                (let ((p (find-packages-by-name value)))
                                  (when (null? p)
                                    (leave (_ "~a: no package by that name~%")
                                           value))
                                  p))
          (match (filter-map (match-lambda
                               (('argument . spec)
                                ;; Take either the specified version or the
                                ;; latest one.
                                (specification->package spec))
                               (_ #f))
                              opts))
                             opts)
                 (()                          ; default to all packages
                  (let ((select? (match (assoc-ref opts 'select)
                                        ('core core-package?)