~ruther/guix-local

577f8fe1841a6316b36e4c7fdd93d38b9e082480 — Ludovic Courtès 9 months ago f3cc235
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
1 files changed, 15 insertions(+), 2 deletions(-)

M gnu/services/cuirass.scm
M gnu/services/cuirass.scm => gnu/services/cuirass.scm +15 -2
@@ 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.")