services: cuirass: Allow passing extra command line options.
authorChristopher Baines <mail@cbaines.net>
Mon, 2 Mar 2020 08:00:14 +0000 (08:00 +0000)
committerChristopher Baines <mail@cbaines.net>
Sun, 8 Mar 2020 23:46:11 +0000 (23:46 +0000)
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/cuirass.scm (<cuirass-configuration>): Add an extra-options
field.
(cuirass-shepherd-service): Pass the extra options to the shepherd servvices.
* doc/guix.texi (Continuous Integration): Document it.

doc/guix.texi
gnu/services/cuirass.scm

index b192118..1af8084 100644 (file)
@@ -22450,6 +22450,9 @@ Only evaluate specifications and build derivations once.
 When substituting a pre-built binary fails, fall back to building
 packages locally.
 
+@item @code{extra-options} (default: @code{'()})
+Extra options to pass when running the Cuirass processes.
+
 @item @code{cuirass} (default: @code{cuirass})
 The Cuirass package to use.
 @end table
index 7bfb021..0f4f0f9 100644 (file)
@@ -77,7 +77,9 @@
   (one-shot?        cuirass-configuration-one-shot? ;boolean
                     (default #f))
   (fallback?        cuirass-configuration-fallback? ;boolean
-                    (default #f)))
+                    (default #f))
+  (extra-options    cuirass-configuration-extra-options
+                    (default '())))
 
 (define (cuirass-shepherd-service config)
   "Return a <shepherd-service> for the Cuirass service with CONFIG."
@@ -95,7 +97,8 @@
         (specs            (cuirass-configuration-specifications config))
         (use-substitutes? (cuirass-configuration-use-substitutes? config))
         (one-shot?        (cuirass-configuration-one-shot? config))
-        (fallback?        (cuirass-configuration-fallback? config)))
+        (fallback?        (cuirass-configuration-fallback? config))
+        (extra-options    (cuirass-configuration-extra-options config)))
     (list (shepherd-service
            (documentation "Run Cuirass.")
            (provision '(cuirass))
                            "--interval" #$(number->string interval)
                            #$@(if use-substitutes? '("--use-substitutes") '())
                            #$@(if one-shot? '("--one-shot") '())
-                           #$@(if fallback? '("--fallback") '()))
+                           #$@(if fallback? '("--fallback") '())
+                           #$@extra-options)
 
                      #:environment-variables
                      (list "GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt"
                            "--listen" #$host
                            "--interval" #$(number->string interval)
                            #$@(if use-substitutes? '("--use-substitutes") '())
-                           #$@(if fallback? '("--fallback") '()))
+                           #$@(if fallback? '("--fallback") '())
+                           #$@extra-options)
 
                      #:user #$user
                      #:group #$group