aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-12-30 12:32:20 +0000
committerChristopher Baines <mail@cbaines.net>2019-12-30 12:32:20 +0000
commit2cb5309851b3868dcdb0e88145d676b474c575aa (patch)
tree274c9ac598f8a561d630ee4ebc1b5d05fa4ecb8b
parent7881eec3152b19de1850c3ef54236f75ae5ed015 (diff)
downloaddata-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.scm21
-rw-r--r--guix-data-service/web/controller.scm5
-rw-r--r--guix-data-service/web/view/html.scm24
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)