summaryrefslogtreecommitdiff
path: root/src/cuirass/database.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuirass/database.scm')
-rw-r--r--src/cuirass/database.scm15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index 523165d..66e93e2 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -47,6 +47,7 @@
build-status
db-add-build
db-update-build-status!
+ db-get-output
db-get-build
db-get-builds
db-get-builds-by-search
@@ -539,6 +540,20 @@ log file for DRV."
"WHERE derivation=" drv " AND status != " status
";")))))
+(define (db-get-output path)
+ "Retrieve the OUTPUT for PATH."
+ (with-db-critical-section db
+ ;; There isn't a unique index on path, but because Cuirass avoids adding
+ ;; derivations which introduce the same outputs, there should only be one
+ ;; result.
+ (match (sqlite-exec db "SELECT derivation, name FROM Outputs
+WHERE path =" path "
+LIMIT 1;")
+ (() #f)
+ ((#(derivation name))
+ `((#:derivation . ,derivation)
+ (#:name . ,name))))))
+
(define (db-get-outputs derivation)
"Retrieve the OUTPUTS of the build identified by DERIVATION in the
database."