From 2cb5309851b3868dcdb0e88145d676b474c575aa Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 30 Dec 2019 12:32:20 +0000 Subject: Display details for the derivation source files If the nar file is available. --- guix-data-service/model/derivation.scm | 21 +++++++++++++++++++++ guix-data-service/web/controller.scm | 5 ++++- guix-data-service/web/view/html.scm | 24 ++++++++++++++++++++++-- 3 files changed, 47 insertions(+), 3 deletions(-) diff --git a/guix-data-service/model/derivation.scm b/guix-data-service/model/derivation.scm index 2122121..8a9e88c 100644 --- a/guix-data-service/model/derivation.scm +++ b/guix-data-service/model/derivation.scm @@ -41,6 +41,7 @@ select-derivation-sources-by-derivation-id select-derivation-references-by-derivation-id select-derivation-source-file-by-store-path + select-derivation-source-file-nar-details-by-file-name select-derivation-source-file-nar-data-by-file-name select-derivation-source-file-data-by-file-name-hash select-derivation-by-output-filename @@ -831,6 +832,26 @@ WHERE substring(derivation_source_files.store_path from 12 for 32) = $1" (string->number uncompressed_size))) (() #f))) +(define (select-derivation-source-file-nar-details-by-file-name conn file-name) + (match (exec-query + conn + " +SELECT compression, hash_algorithm, hash, + uncompressed_size, length(data) AS compressed_size +FROM derivation_source_file_nars +INNER JOIN derivation_source_files + ON derivation_source_file_nars.derivation_source_file_id = + derivation_source_files.id +WHERE derivation_source_files.store_path = $1" + (list file-name)) + (((compression hash_algorithm hash uncompressed_size compressed_size)) + `((compression . ,compression) + (hash_algorithm . ,hash_algorithm) + (hash . ,hash) + (uncompressed_size . ,(string->number uncompressed_size)) + (compressed_size . ,(string->number compressed_size)))) + (() #f))) + (define (select-derivation-source-file-nar-data-by-file-name conn file-name) (match (exec-query conn diff --git a/guix-data-service/web/controller.scm b/guix-data-service/web/controller.scm index f2a6385..71b2429 100644 --- a/guix-data-service/web/controller.scm +++ b/guix-data-service/web/controller.scm @@ -177,7 +177,10 @@ #:code 404)) ((id) (render-html - #:sxml (view-derivation-source-file filename) + #:sxml (view-derivation-source-file + filename + (select-derivation-source-file-nar-details-by-file-name conn + filename)) #:extra-headers http-headers-for-unchanging-content)))) (derivations (render-html diff --git a/guix-data-service/web/view/html.scm b/guix-data-service/web/view/html.scm index c0df5cb..cf718a8 100644 --- a/guix-data-service/web/view/html.scm +++ b/guix-data-service/web/view/html.scm @@ -499,7 +499,14 @@ derivations derivations-using-store-item-list))))) -(define (view-derivation-source-file filename) +(define (view-derivation-source-file filename details) + (define labels + '((compression . "Compression") + (hash_algorithm . "Hash algorithm") + (hash . "Hash") + (uncompressed_size . "Uncompressed size") + (compressed_size . "Compressed size"))) + (layout #:body `(,(header) @@ -510,7 +517,20 @@ (div (@ (class "col-sm-12")) ,(display-store-item-title filename) - "Derivation source file.")))))) + (h4 "Derivation source file") + ,@(if details + `((dl + (@ (class "dl-horizontal")) + ,@(append-map + (match-lambda + ((key . value) + `((dt ,(assq-ref labels key)) + (dd ,(if (eq? key 'hash) + `(span (@ (style "font-family: monospace")) + ,value) + value))))) + details))) + '()))))))) (define (view-derivation derivation derivation-inputs derivation-outputs builds) -- cgit v1.2.3