aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-04-23 23:01:37 +0100
committerChristopher Baines <mail@cbaines.net>2020-04-23 23:01:53 +0100
commit7c65246492183d19c25f09b27b084cb4f6fc46bb (patch)
treee5efba66bfeec7c3f24bd766132d638b12da8226 /guix-build-coordinator
parentd19c89d473c3cc42545086ee2a090f53070d0338 (diff)
downloadbuild-coordinator-7c65246492183d19c25f09b27b084cb4f6fc46bb.tar
build-coordinator-7c65246492183d19c25f09b27b084cb4f6fc46bb.tar.gz
Add datastore-find-derivation-system
Diffstat (limited to 'guix-build-coordinator')
-rw-r--r--guix-build-coordinator/datastore.scm1
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm26
2 files changed, 27 insertions, 0 deletions
diff --git a/guix-build-coordinator/datastore.scm b/guix-build-coordinator/datastore.scm
index 111c854..3de6fbd 100644
--- a/guix-build-coordinator/datastore.scm
+++ b/guix-build-coordinator/datastore.scm
@@ -24,6 +24,7 @@
(re-export datastore-list-unprocessed-builds)
(re-export datastore-list-agent-builds)
(re-export datastore-find-derivation-outputs)
+(re-export datastore-find-derivation-system)
(re-export datastore-find-derivation-inputs)
(re-export datastore-list-builds-for-output)
(re-export datastore-agent-for-build)
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm
index f8fd317..109e162 100644
--- a/guix-build-coordinator/datastore/sqlite.scm
+++ b/guix-build-coordinator/datastore/sqlite.scm
@@ -21,6 +21,7 @@
datastore-store-setup-failure
datastore-store-setup-failure/missing-inputs
datastore-list-setup-failure-missing-inputs
+ datastore-find-derivation-system
datastore-find-derivation-inputs
datastore-find-derivation-outputs
datastore-list-builds-for-output
@@ -830,6 +831,31 @@ WHERE derivation_name = :derivation_name")))
result)))))
+(define-method (datastore-find-derivation-system
+ (datastore <sqlite-datastore>)
+ derivation-name)
+ (call-with-worker-thread
+ (slot-ref datastore 'worker-thread-channel)
+ (lambda (db)
+ (let ((statement
+ (sqlite-prepare
+ db
+ "
+SELECT system
+FROM derivations
+WHERE name = :name")))
+
+ (sqlite-bind-arguments
+ statement
+ #:name derivation-name)
+
+ (let ((system
+ (match (sqlite-step statement)
+ (#(system) system))))
+ (sqlite-reset statement)
+
+ system)))))
+
(define-method (datastore-find-derivation-inputs
(datastore <sqlite-datastore>)
derivation-name)