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