[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

05/05: publish: Add '--nar-path'.

From: Ludovic Courtès
Subject: 05/05: publish: Add '--nar-path'.
Date: Wed, 22 Mar 2017 09:06:40 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 4bb5e0aeb3b7f5396dff1fcd2b85b65af5e07038
Author: Ludovic Courtès <address@hidden>
Date:   Wed Mar 22 14:00:06 2017 +0100

    publish: Add '--nar-path'.
    * guix/scripts/publish.scm (show-help, %options): Add '--nar-path'.
    (%default-options): Add 'nar-path'.
    (guix-publish): Honor it.
 doc/guix.texi            |  8 ++++++++
 guix/scripts/publish.scm | 10 ++++++++++
 2 files changed, 18 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index 6c4e180..b57e219 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6523,6 +6523,14 @@ This allows the user's Guix to keep substitute 
information in cache for
 guarantee that the store items it provides will indeed remain available
 for as long as @var{ttl}.
address@hidden address@hidden
+Use @var{path} as the prefix for the URLs of ``nar'' files
+(@pxref{Invoking guix archive, normalized archives}).
+By default, nars are served at a URL such as
address@hidden/nar/gzip/@dots{}-coreutils-8.25}.  This option allows you to
+change the @code{/nar} part to @var{path}.
 @item address@hidden
 @itemx address@hidden
 Use the specific @var{file}s as the public/private key pair used to sign
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm
index ba5be04..d8ac72f 100644
--- a/guix/scripts/publish.scm
+++ b/guix/scripts/publish.scm
@@ -72,6 +72,8 @@ Publish ~a over HTTP.\n") %store-directory)
   (display (_ "
       --ttl=TTL          announce narinfos can be cached for TTL seconds"))
   (display (_ "
+      --nar-path=PATH    use PATH as the prefix for nar URLs"))
+  (display (_ "
       --public-key=FILE  use FILE as the public key for signatures"))
   (display (_ "
       --private-key=FILE use FILE as the private key for signatures"))
@@ -152,6 +154,9 @@ compression disabled~%"))
                       (leave (_ "~a: invalid duration~%") arg))
                     (alist-cons 'narinfo-ttl (time-second duration)
+        (option '("nar-path") #t #f
+                (lambda (opt name arg result)
+                  (alist-cons 'nar-path arg result)))
         (option '("public-key") #t #f
                 (lambda (opt name arg result)
                   (alist-cons 'public-key-file arg result)))
@@ -167,6 +172,9 @@ compression disabled~%"))
 (define %default-options
   `((port . 8080)
+    ;; By default, serve nars under "/nar".
+    (nar-path . "nar")
     (public-key-file . ,%public-key-file)
     (private-key-file . ,%private-key-file)
@@ -589,6 +597,7 @@ blocking."
                                            (sockaddr:addr addr)
            (socket  (open-server-socket address))
+           (nar-path  (assoc-ref opts 'nar-path))
            (repl-port (assoc-ref opts 'repl))
            ;; Read the key right away so that (1) we fail early on if we can't
@@ -615,5 +624,6 @@ consider using the '--user' option!~%")))
           (repl:spawn-server (repl:make-tcp-server-socket #:port repl-port)))
         (with-store store
           (run-publish-server socket store
+                              #:nar-path nar-path
                               #:compression compression
                               #:narinfo-ttl ttl))))))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]