guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/11: services: syslog: Use syslog-configuration.


From: David Craven
Subject: 04/11: services: syslog: Use syslog-configuration.
Date: Tue, 6 Sep 2016 15:53:18 +0000 (UTC)

dvc pushed a commit to branch master
in repository guix.

commit ec2e2f6ce2f808de20f4770748db43aefd46f0bf
Author: David Craven <address@hidden>
Date:   Sat Aug 27 15:38:55 2016 +0200

    services: syslog: Use syslog-configuration.
    
    * gnu/services/base.scm (<syslog-configuration>): New variable.
      (syslog-service-type): Use <syslog-configuration>.
      (syslog-service): Use <syslog-configuration>.
    * gnu/tests/base.scm (%avahi-os): Use <syslog-configuration>.
    * doc/guix.texi (syslog-configuration-type): Add @deftp.
      (syslog-service): Update @deffn.
---
 doc/guix.texi         |   21 ++++++++++++++++-----
 gnu/services/base.scm |   29 +++++++++++++++++++++--------
 gnu/tests/base.scm    |    9 ++++++---
 3 files changed, 43 insertions(+), 16 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index b6ca34a..2abb7b2 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -7719,12 +7719,23 @@ privacy---often the result of host name lookups is in 
local cache, so
 external name servers do not even need to be queried.
 @end defvr
 
address@hidden
address@hidden {Data Type} syslog-configuration
+This data type represents the configuration of the syslog daemon.
 
address@hidden {Scheme Procedure} syslog-service @
-             [#:config-file @var{%default-syslog.conf}]
-Return a service that runs @command{syslogd}.  If the configuration file
-name @var{config-file} is not specified, use some reasonable default
-settings.
address@hidden @asis
address@hidden @code{syslogd} (default: @code{#~(string-append #$inetutils 
"/libexec/syslogd")})
+The syslog daemon to use.
+
address@hidden @code{config-file} (default: @code{%default-syslog.conf})
+The syslog configuration file to use.
+
address@hidden table
address@hidden deftp
+
address@hidden
address@hidden {Scheme Procedure} syslog-service @var{config}
+Return a service that runs a syslog daemon according to @var{config}.
 
 @xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more
 information on the configuration file syntax.
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index f3f6408..2c2962c 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -82,6 +82,9 @@
 
             nscd-service-type
             nscd-service
+
+            syslog-configuration
+            syslog-configuration?
             syslog-service
             syslog-service-type
             %default-syslog.conf
@@ -885,17 +888,27 @@ given @var{config}---an @code{<nscd-configuration>} 
object.  @xref{Name
 Service Switch}, for an example."
   (service nscd-service-type config))
 
+
+(define-record-type* <syslog-configuration>
+  syslog-configuration  make-syslog-configuration
+  syslog-configuration?
+  (syslogd              syslog-configuration-syslogd
+                        (default #~(string-append #$inetutils 
"/libexec/syslogd")))
+  (config-file          syslog-configuration-config-file
+                        (default %default-syslog.conf)))
+
 (define syslog-service-type
   (shepherd-service-type
    'syslog
-   (lambda (config-file)
+   (lambda (config)
      (shepherd-service
       (documentation "Run the syslog daemon (syslogd).")
       (provision '(syslogd))
       (requirement '(user-processes))
       (start #~(make-forkexec-constructor
-                (list (string-append #$inetutils "/libexec/syslogd")
-                      "--no-detach" "--rcfile" #$config-file)))
+                (list #$(syslog-configuration-syslogd config)
+                      "--no-detach"
+                      "--rcfile" #$(syslog-configuration-config-file config))))
       (stop #~(make-kill-destructor))))))
 
 ;; Snippet adapted from the GNU inetutils manual.
@@ -921,14 +934,14 @@ Service Switch}, for an example."
      mail.*                                  /var/log/maillog
 "))
 
-(define* (syslog-service #:key (config-file %default-syslog.conf))
-  "Return a service that runs @command{syslogd}.  If configuration file
-name @var{config-file} is not specified, use some reasonable default
-settings.
+(define* (syslog-service #:optional (config (syslog-configuration)))
+  "Return a service that runs @command{syslogd} and takes
address@hidden<syslog-configuration>} as a parameter.
 
 @xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more
 information on the configuration file syntax."
-  (service syslog-service-type config-file))
+  (service syslog-service-type config))
+
 
 (define pam-limits-service-type
   (let ((security-limits
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 41f50c0..5c2af5b 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -384,9 +384,12 @@ functionality tests.")
                                               (log-file "/dev/console")))
                        (syslog-service-type config
                                             =>
-                                            (plain-file
-                                             "syslog.conf"
-                                             "*.* /dev/console\n")))))))
+                                            (syslog-configuration
+                                             (inherit config)
+                                             (config-file
+                                              (plain-file
+                                               "syslog.conf"
+                                               "*.* /dev/console\n")))))))))
 
 (define (run-nss-mdns-test)
   ;; Test resolution of '.local' names via libc.  Start the marionette service



reply via email to

[Prev in Thread] Current Thread [Next in Thread]