diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-02-24 13:00:11 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-02-24 13:11:50 +0100 |
commit | 4d459d87347905d7602fbc14cdd786a04c8bf67e (patch) | |
tree | cabcae8d00411a9d4f1035b18d6b8436c62e9227 | |
parent | da35acf91d9d198c8dc61dc356825c867772eec9 (diff) | |
download | guix-4d459d87347905d7602fbc14cdd786a04c8bf67e.tar guix-4d459d87347905d7602fbc14cdd786a04c8bf67e.tar.gz |
publish: Move 'query-path-info' call where it belongs.
* guix/scripts/publish.scm (narinfo-string): Remove 'path-info'
parameter and add 'store' parameter. Call 'query-path-info'.
(render-narinfo): Adjust accordingly.
-rw-r--r-- | guix/scripts/publish.scm | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index fb7b4218e0..3d197384d6 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> -;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -142,10 +142,11 @@ Publish ~a over HTTP.\n") %store-directory) (define base64-encode-string (compose base64-encode string->utf8)) -(define (narinfo-string store-path path-info key) - "Generate a narinfo key/value string for STORE-PATH using the details in -PATH-INFO. The narinfo is signed with KEY." - (let* ((url (string-append "nar/" (basename store-path))) +(define (narinfo-string store store-path key) + "Generate a narinfo key/value string for STORE-PATH; an exception is raised +if STORE-PATH is invalid. The narinfo is signed with KEY." + (let* ((path-info (query-path-info store store-path)) + (url (string-append "nar/" (basename store-path))) (hash (bytevector->nix-base32-string (path-info-hash path-info))) (size (path-info-nar-size path-info)) @@ -199,15 +200,13 @@ References: ~a~%" (define (render-narinfo store request hash) "Render metadata for the store path corresponding to HASH." - (let* ((store-path (hash-part->path store hash)) - (path-info (and (not (string-null? store-path)) - (query-path-info store store-path)))) - (if path-info + (let ((store-path (hash-part->path store hash))) + (if (string-null? store-path) + (not-found request) (values '((content-type . (application/x-nix-narinfo))) (cut display - (narinfo-string store-path path-info (force %private-key)) - <>)) - (not-found request)))) + (narinfo-string store store-path (force %private-key)) + <>))))) (define (render-nar request store-item) "Render archive of the store path corresponding to STORE-ITEM." |