From 64c6282e7fc69ff58e7257a7e72284f63f2f5956 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sat, 25 Jul 2020 11:51:49 +0300 Subject: [PATCH] services: nix: Add extra-options. * gnu/services/nix.scm ()[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. --- doc/guix.texi | 3 +++ gnu/services/nix.scm | 10 +++++++--- 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 for Nix. (match-lambda - (($ package _ ...) + (($ 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)))))))