diff options
author | Christopher Baines <mail@cbaines.net> | 2020-04-23 23:01:37 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-04-23 23:01:53 +0100 |
commit | 7c65246492183d19c25f09b27b084cb4f6fc46bb (patch) | |
tree | e5efba66bfeec7c3f24bd766132d638b12da8226 /guix-build-coordinator | |
parent | d19c89d473c3cc42545086ee2a090f53070d0338 (diff) | |
download | build-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.scm | 1 | ||||
-rw-r--r-- | guix-build-coordinator/datastore/sqlite.scm | 26 |
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) |