diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2025-09-05 17:01:47 +0200 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2025-09-05 17:25:22 +0200 |
| commit | 577f8fe1841a6316b36e4c7fdd93d38b9e082480 (patch) | |
| tree | 13f866466a5d4f965a68bd488499fbd5a27b9dee /gnu | |
| parent | f3cc235bfcec4b0bfb18a0eaa8a369f6b0b74905 (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.scm | 17 |
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.") |
