Subject: [bug#31331] [PATCH 2/2] gnu: services: bitlbee: Add plugins.

From: Pierre-Antoine Rouby <[email-masked]>
Date: Tue, 1 May 2018 19:38:27 +0200

* gnu/services/messaging.scm (bitlbee): Add plugins argument.
---
 gnu/services/messaging.scm | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index 80ffed0f2..d10fef590 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017, 2018 Clément Lassieur <[email-masked]>
 ;;; Copyright © 2017 Mathieu Othacehe <[email-masked]>
 ;;; Copyright © 2015, 2017, 2018 Ludovic Courtès <[email-masked]>
+;;; Copyright © 2018 Pierre-Antoine Rouby <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -783,20 +784,27 @@ string, you could instantiate a prosody service like this:
              (default "127.0.0.1"))
   (port bitlbee-configuration-port
         (default 6667))
+  (plugins bitlbee-plugins
+           (default '()))
   (extra-settings bitlbee-configuration-extra-settings
                   (default "")))
 
+(define (bitlbee-plugin-directory plugins)
+  "Return a directory containing PLUGINS."
+  (directory-union "bitlbee-plugins" plugins))
+
 (define bitlbee-shepherd-service
   (match-lambda
-    (($ <bitlbee-configuration> bitlbee interface port extra-settings)
-     (let ((conf (plain-file "bitlbee.conf"
-                             (string-append "
-  [settings]
+    (($ <bitlbee-configuration> bitlbee interface port
+                                plugins extra-settings)
+     (let ((conf (mixed-text-file "bitlbee.conf"
+                                  "  [settings]
   User = bitlbee
   ConfigDir = /var/lib/bitlbee
   DaemonInterface = " interface "
   DaemonPort = " (number->string port) "
-" extra-settings))))
+  PluginDir = " (bitlbee-plugin-directory plugins) "/lib/bitlbee
+" extra-settings)))
 
        (with-imported-modules (source-module-closure
                                '((gnu build shepherd)
@@ -860,6 +868,7 @@ a gateway between IRC and chat networks.")))
 
 (define* (bitlbee-service #:key (bitlbee bitlbee) ;deprecated
                           (interface "127.0.0.1") (port 6667)
+                          (plugins '())
                           (extra-settings ""))
   "Return a service that runs @url{http://bitlbee.org,BitlBee}, a daemon that
 acts as a gateway between IRC and chat networks.
@@ -875,4 +884,5 @@ configuration file."
            (bitlbee-configuration
             (bitlbee bitlbee)
             (interface interface) (port port)
+            (plugins plugins)
             (extra-settings extra-settings))))
-- 
2.17.0