Subject: bug#27291: [PATCH 2/2] services: rottlog: Make extensible.

From: Ludovic Courtès <[email-masked]>
Date: Thu, 8 Jun 2017 22:53:52 +0200

* gnu/services/admin.scm (rottlog-service-type)[compose, extend]: New
fields.
* doc/guix.texi (Log Rotation): Mention extension.
---
 doc/guix.texi          | 3 +++
 gnu/services/admin.scm | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index 597fb9812..8a08fd9f7 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -9560,6 +9560,9 @@ with the default settings, for commonly encountered log files.
 This is the type of the Rottlog service, whose value is a
 @code{rottlog-configuration} object.
 
+Other services can extend this one with new @code{log-rotation} objects
+(see below), thereby augmenting the set of files to be rotated.
+
 This service type can define mcron jobs (@pxref{Scheduled Job
 Execution}) to run the rottlog service.
 @end defvr
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index 99f3b1da1..b9e3fa70a 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -164,6 +164,12 @@ for ROTATION."
                      ;; the documentation.
                      (service-extension profile-service-type
                                         (compose list rottlog-rottlog))))
+   (compose concatenate)
+   (extend (lambda (config rotations)
+             (rottlog-configuration
+              (inherit config)
+              (rotations (append (rottlog-rotations config)
+                                 rotations)))))
    (default-value (rottlog-configuration))))
 
 ;;; admin.scm ends here
-- 
2.13.0