aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/datastore.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-build-coordinator/datastore.scm')
-rw-r--r--guix-build-coordinator/datastore.scm14
1 files changed, 13 insertions, 1 deletions
diff --git a/guix-build-coordinator/datastore.scm b/guix-build-coordinator/datastore.scm
index 7907e13..10131e7 100644
--- a/guix-build-coordinator/datastore.scm
+++ b/guix-build-coordinator/datastore.scm
@@ -1,4 +1,5 @@
(define-module (guix-build-coordinator datastore)
+ #:use-module (srfi srfi-1)
#:use-module (oop goops)
#:duplicates (merge-generics)
#:use-module (guix-build-coordinator datastore abstract)
@@ -19,7 +20,8 @@
datastore-replace-build-allocation-plan
datastore-allocate-builds-to-agent
datastore-list-allocation-plan-builds)
- #:export (database-uri->datastore))
+ #:export (database-uri->datastore
+ datastore-find-build-output))
(define (database-uri->datastore database)
(cond
@@ -30,3 +32,13 @@
(else
(error
(simple-format #f "Unknown database ~A" database)))))
+
+(define (datastore-find-build-output datastore build-id output-name)
+ (let* ((build (datastore-find-build datastore build-id))
+ (outputs (datastore-find-derivation-outputs
+ datastore
+ (assq-ref build 'derivation-name))))
+ (any (lambda (output)
+ (when (string=? (assq-ref output 'name) output-name)
+ (assq-ref output 'output)))
+ outputs)))