diff options
author | Christopher Baines <mail@cbaines.net> | 2019-12-30 12:32:20 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2019-12-30 12:32:20 +0000 |
commit | 2cb5309851b3868dcdb0e88145d676b474c575aa (patch) | |
tree | 274c9ac598f8a561d630ee4ebc1b5d05fa4ecb8b | |
parent | 7881eec3152b19de1850c3ef54236f75ae5ed015 (diff) | |
download | data-service-2cb5309851b3868dcdb0e88145d676b474c575aa.tar data-service-2cb5309851b3868dcdb0e88145d676b474c575aa.tar.gz |
Display details for the derivation source files
If the nar file is available.
-rw-r--r-- | guix-data-service/model/derivation.scm | 21 | ||||
-rw-r--r-- | guix-data-service/web/controller.scm | 5 | ||||
-rw-r--r-- | 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) |