diff mbox series

[bug#39864,2/2] services: guix-data-service: Allow passing extra options.

Message ID 20200301211331.21163-2-mail@cbaines.net
State Accepted
Headers show
Series None | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Christopher Baines March 1, 2020, 9:13 p.m. UTC
This is so that the options supported by the service configuration don't have
to always be changed. Generally though all options should be explicitly
supported and documented, so this is mostly to facilitate experimentation.

* gnu/services/guix.scm (<guix-data-service-configuration>): Add extra-options
and extra-process-jobs-options to the record type.
(guix-data-service-shepherd-services): Handle these new configuration record
fields.
* doc/guix.texi (Guix Data Service): Document these new options.
---
 doc/guix.texi         |  6 ++++++
 gnu/services/guix.scm | 15 +++++++++++----
 2 files changed, 17 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/doc/guix.texi b/doc/guix.texi
index fab9159530..80ba8a488e 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -25245,6 +25245,12 @@  If set, this is the @code{getmail-retriever-configuration} object with
 which to configure getmail to fetch mail from the guix-commits mailing
 list.
 
+@item @code{extra-options} (default: @var{'()})
+Extra command line options for @code{guix-data-service}.
+
+@item @code{extra-process-jobs-options} (default: @var{'()})
+Extra command line options for @code{guix-data-service-process-jobs}.
+
 @end table
 @end deftp
 
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index 0f0fad39b0..10a8581a62 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -68,7 +68,12 @@ 
    (default #f))
   (commits-getmail-retriever-configuration
    guix-data-service-commits-getmail-retriever-configuration
-   (default #f)))
+   (default #f))
+  (extra-options    guix-data-service-extra-options
+                    (default '()))
+  (extra-process-jobs-options
+   guix-data-service-extra-process-jobs-options
+   (default '())))
 
 (define (guix-data-service-profile-packages config)
   "Return the guix-data-service package, this will populate the
@@ -78,7 +83,7 @@  ca-certificates.crt file in the system profile."
 
 (define (guix-data-service-shepherd-services config)
   (match-record config <guix-data-service-configuration>
-    (package user group port host)
+    (package user group port host extra-options extra-process-jobs-options)
     (list
      (shepherd-service
       (documentation "Guix Data Service web server")
@@ -92,7 +97,8 @@  ca-certificates.crt file in the system profile."
                       #$(string-append "--host=" host)
                       ;; Perform any database migrations when the
                       ;; service is started
-                      "--update-database")
+                      "--update-database"
+                      #$@extra-options)
 
                 #:user #$user
                 #:group #$group
@@ -117,7 +123,8 @@  ca-certificates.crt file in the system profile."
       (start #~(make-forkexec-constructor
                 (list
                  #$(file-append package
-                                "/bin/guix-data-service-process-jobs"))
+                                "/bin/guix-data-service-process-jobs")
+                 #$@extra-process-jobs-options)
                 #:user #$user
                 #:group #$group
                 #:environment-variables