guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/03: hydra: berlin: Set GIT_SSL_CAINFO and GIT_EXEC_PATH for cuirass.


From: Ricardo Wurmus
Subject: 03/03: hydra: berlin: Set GIT_SSL_CAINFO and GIT_EXEC_PATH for cuirass.
Date: Sat, 22 Jul 2017 21:43:09 -0400 (EDT)

rekado pushed a commit to branch master
in repository maintenance.

commit 2438346cd088b616e74c14463326e512184f041c
Author: Ricardo Wurmus <address@hidden>
Date:   Sun Jul 23 03:42:15 2017 +0200

    hydra: berlin: Set GIT_SSL_CAINFO and GIT_EXEC_PATH for cuirass.
---
 hydra/berlin.scm | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 55 insertions(+), 1 deletion(-)

diff --git a/hydra/berlin.scm b/hydra/berlin.scm
index 29601a4..4f32e17 100644
--- a/hydra/berlin.scm
+++ b/hydra/berlin.scm
@@ -6,6 +6,60 @@
 (use-package-modules admin certs emacs linux ssh tls vim package-management
                      web wget ci version-control)
 
+;; FIXME: This only adds the environment variables GIT_SSL_CAINFO and
+;; GIT_EXEC_PATH, which are needed for cuirass to fetch sources via HTTPS.
+(define (hacked-cuirass-shepherd-service config)
+  "Return a <shepherd-service> for the Cuirass service with CONFIG."
+  (and
+   (cuirass-configuration? config)
+   (let ((cuirass          ((@@ (gnu services cuirass) 
cuirass-configuration-cuirass) config))
+         (cache-directory  ((@@ (gnu services cuirass) 
cuirass-configuration-cache-directory) config))
+         (log-file         ((@@ (gnu services cuirass) 
cuirass-configuration-log-file) config))
+         (user             ((@@ (gnu services cuirass) 
cuirass-configuration-user) config))
+         (group            ((@@ (gnu services cuirass) 
cuirass-configuration-group) config))
+         (interval         ((@@ (gnu services cuirass) 
cuirass-configuration-interval) config))
+         (database         ((@@ (gnu services cuirass) 
cuirass-configuration-database) config))
+         (port             ((@@ (gnu services cuirass) 
cuirass-configuration-port) config))
+         (specs            ((@@ (gnu services cuirass) 
cuirass-configuration-specifications) config))
+         (use-substitutes? ((@@ (gnu services cuirass) 
cuirass-configuration-use-substitutes?) config))
+         (one-shot?        ((@@ (gnu services cuirass) 
cuirass-configuration-one-shot?) config))
+         (load-path        ((@@ (gnu services cuirass) 
cuirass-configuration-load-path) config)))
+     (list (shepherd-service
+            (documentation "Run Cuirass.")
+            (provision '(cuirass))
+            (requirement '(guix-daemon networking))
+            (start #~(make-forkexec-constructor
+                      (list (string-append #$cuirass "/bin/cuirass")
+                            "--cache-directory" #$cache-directory
+                            "--specifications"
+                            #$(scheme-file "cuirass-specs.scm" specs)
+                            "--database" #$database
+                            "--port" #$(number->string port)
+                            "--interval" #$(number->string interval)
+                            #$@(if use-substitutes? '("--use-substitutes") '())
+                            #$@(if one-shot? '("--one-shot") '())
+                            #$@(if (null? load-path) '()
+                                   `("--load-path" ,(string-join load-path 
":"))))
+                      #:environment-variables
+                      (list 
"GIT_SSL_CAINFO=/run/current-system/profile/etc/ssl/certs/ca-certificates.crt"
+                            
"GIT_EXEC_PATH=/run/current-system/profile/libexec/git-core/")
+                      #:user #$user
+                      #:group #$group
+                      #:log-file #$log-file))
+            (stop #~(make-kill-destructor)))))))
+
+(define hacked-cuirass-service-type
+  (service-type
+   (name 'cuirass)
+   (extensions
+    (list
+     (service-extension profile-service-type      ;for 'info cuirass'
+                        (compose list (@@ (gnu services cuirass) 
cuirass-configuration-cuirass)))
+     (service-extension rottlog-service-type (@@ (gnu services cuirass) 
cuirass-log-rotations))
+     (service-extension activation-service-type (@@ (gnu services cuirass) 
cuirass-activation))
+     (service-extension shepherd-root-service-type 
hacked-cuirass-shepherd-service)
+     (service-extension account-service-type (@@ (gnu services cuirass) 
cuirass-account))))))
+
 (define %sysadmins
   ;; The sysadmins.
   (list (sysadmin (name "ludo")
@@ -257,7 +311,7 @@ Happy hacking!\n"))
              %nginx-mime-types
              %nginx-cache-activation
 
-             (service cuirass-service-type
+             (service hacked-cuirass-service-type
                       (cuirass-configuration
                        (interval (* 5 60))
                        (specifications %cuirass-specs)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]