summary refs log tree commit diff
diff options
context:
space:
mode:
authorOleg Pykhalov <go.wigust@gmail.com>2020-07-25 11:51:49 +0300
committerOleg Pykhalov <go.wigust@gmail.com>2020-07-25 12:27:35 +0300
commit64c6282e7fc69ff58e7257a7e72284f63f2f5956 (patch)
treee8918c4efbca1b2d6d7965be3940e14fc0cb8fe5
parent3601d802d55106e36e3279680d4728dd3cfe3b4c (diff)
downloadguix-64c6282e7fc69ff58e7257a7e72284f63f2f5956.tar.gz
services: nix: Add extra-options.
* gnu/services/nix.scm (<nix-configuration>)[extra-options]: New field.
(nix-shepherd-service): Add this.
(nix-activation): Add new line to the end of /etc/nix/nix.conf file.
* doc/guix.texi (Miscellaneous Services)[Nix service]: Document this.
-rw-r--r--doc/guix.texi3
-rw-r--r--gnu/services/nix.scm10
2 files changed, 10 insertions, 3 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index a6fc64bed8..e2b304ff63 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -27637,6 +27637,9 @@ This is a list of strings or objects appended to the
 This is a list of strings or objects appended to the configuration file.
 It is used to pass extra text to be added verbatim to the configuration
 file.
+
+@item @code{extra-options} (default: @code{'()})
+Extra command line options for @code{nix-service-type}.
 @end table
 @end deftp
 
diff --git a/gnu/services/nix.scm b/gnu/services/nix.scm
index ba94cfa721..93f46ef71e 100644
--- a/gnu/services/nix.scm
+++ b/gnu/services/nix.scm
@@ -56,6 +56,8 @@
   (build-sandbox-items nix-configuration-build-sandbox-items ;list of strings
                        (default '()))
   (extra-config        nix-configuration-extra-config ;list of strings
+                       (default '()))
+  (extra-options       nix-configuration-extra-options ;list of strings
                        (default '())))
 
 ;; Copied from gnu/services/base.scm
@@ -116,19 +118,21 @@ GID."
                                            '#$(map references-file
                                                    (list package)))
                                '#$build-sandbox-items))
-               (for-each (cut display <>) '#$extra-config))))))))
+               (for-each (cut display <>) '#$extra-config)
+               (newline))))))))
 
 (define nix-shepherd-service
   ;; Return a <shepherd-service> for Nix.
   (match-lambda
-    (($ <nix-configuration> package _ ...)
+    (($ <nix-configuration> package _ _ _ extra-options)
      (list
       (shepherd-service
        (provision '(nix-daemon))
        (documentation "Run nix-daemon.")
        (requirement '())
        (start #~(make-forkexec-constructor
-                 (list (string-append #$package "/bin/nix-daemon"))))
+                 (list (string-append #$package "/bin/nix-daemon")
+                       #$@extra-options)))
        (respawn? #f)
        (stop #~(make-kill-destructor)))))))