summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2025-09-05 17:01:47 +0200
committerLudovic Courtès <ludo@gnu.org>2025-09-05 17:25:22 +0200
commit577f8fe1841a6316b36e4c7fdd93d38b9e082480 (patch)
tree13f866466a5d4f965a68bd488499fbd5a27b9dee /gnu
parentf3cc235bfcec4b0bfb18a0eaa8a369f6b0b74905 (diff)
services: cuirass: Socket activation for ‘cuirass register’.
Fixes guix/cuirass#16. * gnu/services/cuirass.scm (cuirass-shepherd-service)[endpoint]: New procedure. Use ‘make-systemd-constructor’ for ‘cuirass register’. Set the ‘COLUMNS’ environment variable. Change-Id: If58e4e8a889ab11e4b5b89a7abaf0af24600751b
Diffstat (limited to 'gnu')
-rw-r--r--gnu/services/cuirass.scm17
1 files changed, 15 insertions, 2 deletions
diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm
index 581166cc499..943d4cea2bc 100644
--- a/gnu/services/cuirass.scm
+++ b/gnu/services/cuirass.scm
@@ -130,6 +130,14 @@
(define (cuirass-shepherd-service config)
"Return a <shepherd-service> for the Cuirass service with CONFIG."
+ (define (endpoint name)
+ #~(endpoint (make-socket-address AF_UNIX
+ #$(in-vicinity "/var/run/cuirass" name))
+ #:name #$name
+ #:socket-owner #$(cuirass-configuration-user config)
+ #:socket-group #$(cuirass-configuration-group config)
+ #:socket-directory-permissions #o700))
+
(let ((cuirass (cuirass-configuration-cuirass config))
(cache-directory (cuirass-configuration-cache-directory config))
(web-log-file (cuirass-configuration-web-log-file config))
@@ -158,7 +166,7 @@
(requirement '(user-processes
guix-daemon
postgres postgres-roles networking))
- (start #~(make-forkexec-constructor
+ (start #~(make-systemd-constructor
(list (string-append #$cuirass "/bin/cuirass")
"register"
"--cache-directory" #$cache-directory
@@ -191,16 +199,21 @@
#$@(if fallback? '("--fallback") '())
#$@extra-options)
+ ;; Unix-domain sockets that trigger socket activation.
+ (list #$(endpoint "bridge")
+ #$(endpoint "remote-builds"))
+
#:environment-variables
(list "LC_ALL=C.UTF-8" ;for proper file name decoding
"GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt"
+ "COLUMNS=200" ;for backtraces
(string-append "GIT_EXEC_PATH=" #$git
"/libexec/git-core"))
#:user #$user
#:group #$group
#:log-file #$main-log-file))
- (stop #~(make-kill-destructor))
+ (stop #~(make-systemd-destructor))
(actions (list (shepherd-configuration-action config-file))))
,(shepherd-service
(documentation "Run Cuirass web interface.")