summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-03-23 14:07:00 +0100
committerLudovic Courtès <ludo@gnu.org>2017-03-24 00:23:29 +0100
commit697ddb8850d7aeb612ec9402e86f82c44edf8c96 (patch)
treeb6bd4a5230d356a22529c50310483f13bc62f6f2
parentf1e900a3b8267846eb3909fbf86e681cbc56203d (diff)
downloadguix-697ddb8850d7aeb612ec9402e86f82c44edf8c96.tar.gz
services: guix-publish: Add 'compression-level' and 'nar-path' fields.
* gnu/services/base.scm (<guix-publish-configuration>)[compression-level,
nar-path]: New fields.
(guix-publish-shepherd-service): Honor them.
* doc/guix.texi (Base Services): Document them.
-rw-r--r--doc/guix.texi9
-rw-r--r--gnu/services/base.scm12
2 files changed, 19 insertions, 2 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index b452b087f1..fb0862096a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -9032,6 +9032,15 @@ The TCP port to listen for connections.
 @item @code{host} (default: @code{"localhost"})
 The host (and thus, network interface) to listen to.  Use
 @code{"0.0.0.0"} to listen on all the network interfaces.
+
+@item @code{compression-level} (default: @code{3})
+The gzip compression level at which substitutes are compressed.  Use
+@code{0} to disable compression altogether, and @code{9} to get the best
+compression ratio at the expense of increased CPU usage.
+
+@item @code{nar-path} (default: @code{"nar"})
+The URL path at which ``nars'' can be fetched.  @xref{Invoking guix
+publish, @code{--nar-path}}, for details.
 @end table
 @end deftp
 
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 0de83f36c8..95a1ba2a6c 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -127,6 +127,8 @@
             guix-publish-configuration-guix
             guix-publish-configuration-port
             guix-publish-configuration-host
+            guix-publish-configuration-compression-level
+            guix-publish-configuration-nar-path
             guix-publish-service
             guix-publish-service-type
 
@@ -1438,11 +1440,15 @@ failed to register hydra.gnu.org public key: ~a~%" status))))))))
   (port    guix-publish-configuration-port        ;number
            (default 80))
   (host    guix-publish-configuration-host        ;string
-           (default "localhost")))
+           (default "localhost"))
+  (compression-level guix-publish-compression-level ;integer
+                     (default 3))
+  (nar-path    guix-publish-nar-path              ;string
+               (default "nar")))
 
 (define guix-publish-shepherd-service
   (match-lambda
-    (($ <guix-publish-configuration> guix port host)
+    (($ <guix-publish-configuration> guix port host compression nar-path)
      (list (shepherd-service
             (provision '(guix-publish))
             (requirement '(guix-daemon))
@@ -1450,6 +1456,8 @@ failed to register hydra.gnu.org public key: ~a~%" status))))))))
                       (list #$(file-append guix "/bin/guix")
                             "publish" "-u" "guix-publish"
                             "-p" #$(number->string port)
+                            "-C" #$(number->string compression)
+                            (string-append "--nar-path=" #$nar-path)
                             (string-append "--listen=" #$host))))
             (stop #~(make-kill-destructor)))))))