diff --git a/doc/guix.texi b/doc/guix.texi index 233c371fdb8..03363c170c1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -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 diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index c9eff7ba678..8e8a34bd0fd 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -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