Re-export mosquitto service

Evgeny PisemskySun May 11 22:45:55+0300 2025

5b3f16c

Re-export mosquitto service

modules/cogd/services/messaging.scm

44
55
(define-module (cogd services messaging))
66
7-
(use-modules (guix records)
8-
             (guix gexp)
9-
             (gnu packages messaging)
10-
             (gnu packages admin)
11-
             (gnu system shadow)
12-
             (gnu services)
13-
             (gnu services shepherd))
14-
15-
(export mosquitto-configuration
16-
        mosquitto-configuration?
17-
        mosquitto-configuration-package
18-
        mosquitto-configuration-config-file
19-
        mosquitto-configuration-user
20-
        mosquitto-configuration-group
21-
        mosquitto-service-type)
22-
23-
(define-record-type* <mosquitto-configuration>
24-
  mosquitto-configuration
25-
  make-mosquitto-configuration
26-
  mosquitto-configuration?
27-
  (package     mosquitto-configuration-package
28-
               (default mosquitto))
29-
  (config-file mosquitto-configuration-config-file
30-
               (default #f))
31-
  (user        mosquitto-configuration-user
32-
               (default "mosquitto"))
33-
  (group       mosquitto-configuration-group
34-
               (default "mosquitto")))
35-
36-
(define (mosquitto-accounts config)
37-
  (match-record config <mosquitto-configuration>
38-
                (user group)
39-
    (filter identity
40-
            (list
41-
             (and (equal? group "mosquitto")
42-
                  (user-group
43-
                   (name "mosquitto")
44-
                   (system? #t)))
45-
             (and (equal? user "mosquitto")
46-
                  (user-account
47-
                   (name "mosquitto")
48-
                   (group group)
49-
                   (system? #t)
50-
                   (comment "bzzz")
51-
                   (home-directory "/var/empty")
52-
                   (shell (file-append shadow "/sbin/nologin"))))))))
53-
54-
(define (mosquitto-shepherd-service config)
55-
  (match-record config <mosquitto-configuration>
56-
                (package config-file user group)
57-
    (list (shepherd-service
58-
           (documentation "Run the mosquitto MQTT broker.")
59-
           (provision '(mosquitto))
60-
           (requirement '(networking syslogd user-processes))
61-
           (start #~(make-forkexec-constructor
62-
                     (list #$(file-append package "/sbin/mosquitto")
63-
                           #$@(if config-file
64-
                                  (list "-c" config-file)
65-
                                  '()))
66-
                     #:user #$user
67-
                     #:group #$group))
68-
           (stop #~(make-kill-destructor))))))
69-
70-
(define mosquitto-service-type
71-
  (service-type
72-
   (description "Run the mosquitto MQTT broker.")
73-
   (name 'mosquitto)
74-
   (extensions
75-
    (list (service-extension account-service-type mosquitto-accounts)
76-
          (service-extension shepherd-root-service-type mosquitto-shepherd-service)))
77-
   (default-value (mosquitto-configuration))))
7+
(use-modules (gnu services messaging))
8+
9+
(re-export mosquitto-configuration
10+
           mosquitto-configuration?
11+
           mosquitto-configuration-package
12+
           mosquitto-configuration-config-file
13+
           mosquitto-configuration-user
14+
           mosquitto-configuration-group
15+
           mosquitto-service-type)