From 9acb0aa55b5787edef885bb812e2ee66d4401e80 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 29 Sep 2019 19:13:02 +0100 Subject: http: Support fetching builds by derivation. There's a one to one mapping of build id to derivation, so allow querying by derivation file name as well. I'm looking at this as I'm interested in getting build information in to the Guix Data Service. * src/cuirass/http.scm (url-handler): Support fetching builds by numeric id or the derivation file name. --- src/cuirass/http.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/cuirass/http.scm b/src/cuirass/http.scm index 2da3637..b6a4358 100644 --- a/src/cuirass/http.scm +++ b/src/cuirass/http.scm @@ -42,6 +42,7 @@ #:use-module (sxml simple) #:use-module (cuirass templates) #:use-module (guix utils) + #:use-module ((guix store) #:select (%store-prefix)) #:use-module (guix build union) #:export (run-cuirass-server)) @@ -243,11 +244,14 @@ Hydra format." (((or "jobsets" "specifications") . rest) (respond-json (object->json-string (list->vector (db-get-specifications))))) - (("build" build-id) - (let ((hydra-build (handle-build-request (string->number build-id)))) + (("build" id) + (let ((hydra-build (handle-build-request + (if (string-suffix? ".drv" id) + (string-append (%store-prefix) "/" id) + (string->number id))))) (if hydra-build (respond-json (object->json-string hydra-build)) - (respond-build-not-found build-id)))) + (respond-build-not-found id)))) (("build" build-id "details") (let ((build (db-get-build (string->number build-id)))) (if build -- cgit v1.2.3