summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-02-27 22:40:35 +0100
committerLudovic Courtès <ludo@gnu.org>2013-02-27 22:40:35 +0100
commitfae31edcec43c93a996a1872c68d1c540af0068f (patch)
treeae2bfb9ba57fb7b1ffc3c4241c11f5f59975829c /guix
parent149acc2981d8580d9fd258e6c47a16bacfa67cb7 (diff)
downloadguix-patches-fae31edcec43c93a996a1872c68d1c540af0068f.tar
guix-patches-fae31edcec43c93a996a1872c68d1c540af0068f.tar.gz
store: Add queries for references & co.
* guix/store.scm (operation-id)[query-valid-derivers]: New value. (references, referrers, valid-derivers, query-derivation-outputs): New procedures. * tests/store.scm ("references", "derivers"): New tests.
Diffstat (limited to 'guix')
-rw-r--r--guix/store.scm28
1 files changed, 27 insertions, 1 deletions
diff --git a/guix/store.scm b/guix/store.scm
index 3627d5be04..80b36daf93 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -66,6 +66,10 @@
substitutable-paths
substitutable-path-info
+ references
+ referrers
+ valid-derivers
+ query-derivation-outputs
live-paths
dead-paths
collect-garbage
@@ -126,7 +130,8 @@
(query-path-from-hash-part 29)
(query-substitutable-path-infos 30)
(query-valid-paths 31)
- (query-substitutable-paths 32))
+ (query-substitutable-paths 32)
+ (query-valid-derivers 33))
(define-enumerate-type hash-algo
;; hash.hh
@@ -597,6 +602,27 @@ name--it is the caller's responsibility to ensure that it is an absolute
file name. Return #t on success."
boolean)
+(define references
+ (operation (query-references (store-path path))
+ "Return the list of references of PATH."
+ store-path-list))
+
+(define referrers
+ (operation (query-referrers (store-path path))
+ "Return the list of path that refer to PATH."
+ store-path-list))
+
+(define valid-derivers
+ (operation (query-valid-derivers (store-path path))
+ "Return the list of valid \"derivers\" of PATH---i.e., all the
+.drv present in the store that have PATH among their outputs."
+ store-path-list))
+
+(define query-derivation-outputs ; avoid name clash with `derivation-outputs'
+ (operation (query-derivation-outputs (store-path path))
+ "Return the list of outputs of PATH, a .drv file."
+ store-path-list))
+
(define-operation (has-substitutes? (store-path path))
"Return #t if binary substitutes are available for PATH, and #f otherwise."
boolean)