guix gc: Add `--requisites'.

* guix/scripts/gc.scm (show-help, %options): Add `--requisites'.
  (guix-gc): Handle it.
* doc/guix.texi (Invoking guix gc): Document `--requisites'.
* NEWS: Update.
This commit is contained in:
Ludovic Courtès 2013-06-13 22:15:41 +02:00
parent 3f1e69395c
commit 8e59fdd53b
3 changed files with 19 additions and 0 deletions

4
NEWS
View File

@ -32,6 +32,10 @@ See the manual for details.
This option instructs to fall back to local builds when the substituter fails This option instructs to fall back to local builds when the substituter fails
to download a substitute. to download a substitute.
*** New --requisites option for “guix gc”
See the manual for details.
** Bugs fixed ** Bugs fixed
*** “guix --help” now works when using Guile 2.0.5 *** “guix --help” now works when using Guile 2.0.5
*** Binary substituter multi-threading and pipe issues fixed *** Binary substituter multi-threading and pipe issues fixed

View File

@ -722,6 +722,13 @@ In addition, the references among existing store files can be queried:
List the references (respectively, the referrers) of store files given List the references (respectively, the referrers) of store files given
as arguments. as arguments.
@item --requisites
@itemx -R
List the requisites of the store files passed as arguments. Requisites
include the store files themselves, their references, and the references
of these, recursively. In other words, the returned list is the
@dfn{transitive closure} of the store files.
@end table @end table

View File

@ -50,6 +50,8 @@ Invoke the garbage collector.\n"))
(newline) (newline)
(display (_ " (display (_ "
--references list the references of PATHS")) --references list the references of PATHS"))
(display (_ "
-R, --requisites list the requisites of PATHS"))
(display (_ " (display (_ "
--referrers list the referrers of PATHS")) --referrers list the referrers of PATHS"))
(newline) (newline)
@ -128,6 +130,10 @@ interpreted."
(lambda (opt name arg result) (lambda (opt name arg result)
(alist-cons 'action 'list-references (alist-cons 'action 'list-references
(alist-delete 'action result)))) (alist-delete 'action result))))
(option '(#\R "requisites") #f #f
(lambda (opt name arg result)
(alist-cons 'action 'list-requisites
(alist-delete 'action result))))
(option '("referrers") #f #f (option '("referrers") #f #f
(lambda (opt name arg result) (lambda (opt name arg result)
(alist-cons 'action 'list-referrers (alist-cons 'action 'list-referrers
@ -189,6 +195,8 @@ interpreted."
(delete-paths store paths)) (delete-paths store paths))
((list-references) ((list-references)
(list-relatives references)) (list-relatives references))
((list-requisites)
(list-relatives requisites))
((list-referrers) ((list-referrers)
(list-relatives referrers)) (list-relatives referrers))
((list-dead) ((list-dead)