guix gc: Add `--requisites'.
authorLudovic Courtès <ludo@gnu.org>
Thu, 13 Jun 2013 20:15:41 +0000 (22:15 +0200)
committerLudovic Courtès <ludo@gnu.org>
Thu, 13 Jun 2013 20:15:41 +0000 (22:15 +0200)
* guix/scripts/gc.scm (show-help, %options): Add `--requisites'.
  (guix-gc): Handle it.
* doc/guix.texi (Invoking guix gc): Document `--requisites'.
* NEWS: Update.

NEWS
doc/guix.texi
guix/scripts/gc.scm

diff --git a/NEWS b/NEWS
index 3a946ec..6c33b9a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -32,6 +32,10 @@ See the manual for details.
 This option instructs to fall back to local builds when the substituter fails
 to download a substitute.
 
+*** New ‘--requisites’ option for “guix gc”
+
+See the manual for details.
+
 ** Bugs fixed
 *** “guix --help” now works when using Guile 2.0.5
 *** Binary substituter multi-threading and pipe issues fixed
index 02fb998..23e8351 100644 (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
 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
 
 
index cecb68e..77ec763 100644 (file)
@@ -50,6 +50,8 @@ Invoke the garbage collector.\n"))
   (newline)
   (display (_ "
       --references       list the references of PATHS"))
+  (display (_ "
+  -R, --requisites       list the requisites of PATHS"))
   (display (_ "
       --referrers        list the referrers of PATHS"))
   (newline)
@@ -128,6 +130,10 @@ interpreted."
                 (lambda (opt name arg result)
                   (alist-cons 'action 'list-references
                               (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
                 (lambda (opt name arg result)
                   (alist-cons 'action 'list-referrers
@@ -189,6 +195,8 @@ interpreted."
          (delete-paths store paths))
         ((list-references)
          (list-relatives references))
+        ((list-requisites)
+         (list-relatives requisites))
         ((list-referrers)
          (list-relatives referrers))
         ((list-dead)