summaryrefslogtreecommitdiff
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)
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)))))))