From 4231f11cb8d5f556e38715878624cb0b88349b13 Mon Sep 17 00:00:00 2001 From: Christopher Baines <mail@cbaines.net> Date: Sun, 11 Oct 2020 21:19:00 +0100 Subject: Tweak linking to build servers Move the logic from different places in the view code, and also start supporting linking to guix.cbaines.net builds. I'm unsure quite how to generalise this, but just starting doing it is probably the way forward. --- guix-data-service/web/build/html.scm | 8 +++----- guix-data-service/web/html-utils.scm | 18 ++++++++++++++++++ guix-data-service/web/revision/html.scm | 8 +++----- guix-data-service/web/view/html.scm | 8 +++----- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/guix-data-service/web/build/html.scm b/guix-data-service/web/build/html.scm index f9939af..461f44a 100644 --- a/guix-data-service/web/build/html.scm +++ b/guix-data-service/web/build/html.scm @@ -116,11 +116,9 @@ (td (a (@ (href ,derivation-file-name)) ,(display-store-item-short derivation-file-name))) (td ,timestamp) - (td (a (@ (href ,(simple-format - #f "~Abuild/~A" + (td (a (@ (href ,(build-server-link-url build-server-url - (string-drop - derivation-file-name - (string-length "/gnu/store/"))))) + build-server-build-id + derivation-file-name))) "View build on " ,build-server-url))))) builds))))))))) diff --git a/guix-data-service/web/html-utils.scm b/guix-data-service/web/html-utils.scm index bdafae3..5fa1ad4 100644 --- a/guix-data-service/web/html-utils.scm +++ b/guix-data-service/web/html-utils.scm @@ -26,6 +26,7 @@ build-status-value->display-string build-status-span build-url + build-server-link-url build-status-alist->build-icon)) (define (sexp-div sexp) @@ -79,6 +80,23 @@ build-server-id derivation-file-name))) +(define (build-server-link-url url-base + build-server-build-id + derivation-file-name) + (string-append + url-base + (if (string-suffix? "/" url-base) + "" + "/") + "build/" + (if (and (string? build-server-build-id) + (eq? (string-length build-server-build-id) + 36)) ; crude UUID check + build-server-build-id + (string-drop + derivation-file-name + (string-length "/gnu/store/"))))) + (define (build-status-span status) `(span (@ (class ,(string-append "label label-" diff --git a/guix-data-service/web/revision/html.scm b/guix-data-service/web/revision/html.scm index 571f6f6..b72dd9f 100644 --- a/guix-data-service/web/revision/html.scm +++ b/guix-data-service/web/revision/html.scm @@ -1978,12 +1978,10 @@ figure { (td (a (@ (href ,derivation-file-name)) ,(display-store-item-short derivation-file-name))) (td ,timestamp) - (td (a (@ (href ,(simple-format - #f "~Abuild/~A" + (td (a (@ (href ,(build-server-link-url build-server-url - (string-drop - derivation-file-name - (string-length "/gnu/store/"))))) + build-server-build-id + derivation-file-name))) "View build on " ,build-server-url))))) builds))))))))) diff --git a/guix-data-service/web/view/html.scm b/guix-data-service/web/view/html.scm index 70893c4..78a6da1 100644 --- a/guix-data-service/web/view/html.scm +++ b/guix-data-service/web/view/html.scm @@ -671,12 +671,10 @@ time." (second derivation)))) ,(build-status-span status))) (a (@ (style "display: inline-block; margin-top: 0.4em;") - (href ,(simple-format - #f "~Abuild/~A" + (href ,(build-server-link-url build-server-url - (string-drop - (second derivation) - (string-length "/gnu/store/"))))) + build-server-build-id + (second derivation)))) "View build on " ,build-server-url)))) builds))) (div -- cgit v1.2.3