refresh: Add '--expression'.

* guix/scripts/refresh.scm (%options, show-help): Add --expression.
(guix-refresh): Honor it.
* doc/guix.texi (Invoking guix refresh): Document it.
This commit is contained in:
Ludovic Courtès 2015-11-23 17:47:22 +01:00
parent 160b0ef3fd
commit 2d7fc7daf1
2 changed files with 20 additions and 0 deletions

View File

@ -4277,6 +4277,19 @@ The following options are supported:
@table @code
@item --expression=@var{expr}
@itemx -e @var{expr}
Consider the package @var{expr} evaluates to.
This is useful to precisely refer to a package, as in this example:
@example
guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'
@end example
This command lists the dependents of the ``final'' libc (essentially all
the packages.)
@item --update
@itemx -u
Update distribution source files (package recipes) in place. This is

View File

@ -80,6 +80,9 @@
(option '(#\L "list-updaters") #f #f
(lambda args
(list-updaters-and-exit)))
(option '(#\e "expression") #t #f
(lambda (opt name arg result)
(alist-cons 'expression arg result)))
(option '(#\l "list-dependent") #f #f
(lambda (opt name arg result)
(alist-cons 'list-dependent? #t result)))
@ -115,6 +118,8 @@ Update package definitions to match the latest upstream version.
When PACKAGE... is given, update only the specified packages. Otherwise
update all the packages of the distribution, or the subset thereof
specified with `--select'.\n"))
(display (_ "
-e, --expression=EXPR consider the package EXPR evaluates to"))
(display (_ "
-u, --update update source files in place"))
(display (_ "
@ -348,6 +353,8 @@ update would trigger a complete rebuild."
;; Take either the specified version or the
;; latest one.
(specification->package spec))
(('expression . exp)
(read/eval-package-expression exp))
(_ #f))
opts)
(() ; default to all packages