guix-commits
[Top][All Lists]
Advanced

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

03/07: services: dbus: 'wrapped-dbus-service' accepts a list of variable


From: guix-commits
Subject: 03/07: services: dbus: 'wrapped-dbus-service' accepts a list of variables.
Date: Fri, 5 Apr 2019 09:45:13 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit aa071ca049c4324c790b3364e6c4c8e886d26a9e
Author: Ludovic Courtès <address@hidden>
Date:   Tue Apr 2 22:35:49 2019 +0200

    services: dbus: 'wrapped-dbus-service' accepts a list of variables.
    
    * gnu/services/dbus.scm (wrapped-dbus-service): Replace 'variable' and
    'value' by 'variables', and adjust code accordingly.
    * gnu/services/desktop.scm (upower-dbus-service):
    (geoclue-dbus-service, elogind-dbus-service): Adjust accordingly.
---
 gnu/services/dbus.scm    | 14 ++++++++++----
 gnu/services/desktop.scm | 12 ++++++------
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm
index 3d2dbb9..35d7ff3 100644
--- a/gnu/services/dbus.scm
+++ b/gnu/services/dbus.scm
@@ -231,14 +231,20 @@ and policy files.  For example, to allow avahi-daemon to 
use the system bus,
            (dbus-configuration (dbus dbus)
                                (services services))))
 
-(define (wrapped-dbus-service service program variable value)
+(define (wrapped-dbus-service service program variables)
   "Return a wrapper for @var{service}, a package containing a D-Bus service,
-where @var{program} is wrapped such that environment variable @var{variable}
-is set to @var{value} when the bus daemon launches it."
+where @var{program} is wrapped such that @var{variables}, a list of name/value
+tuples, are all set as environment variables when the bus daemon launches it."
   (define wrapper
     (program-file (string-append (package-name service) "-program-wrapper")
                   #~(begin
-                      (setenv #$variable #$value)
+                      (use-modules (ice-9 match))
+
+                      (for-each (match-lambda
+                                  ((variable value)
+                                   (setenv variable value)))
+                                '#$variables)
+
                       (apply execl (string-append #$service "/" #$program)
                              (string-append #$service "/" #$program)
                              (cdr (command-line))))))
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 230aeb3..578095b 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -217,8 +217,8 @@
 (define (upower-dbus-service config)
   (list (wrapped-dbus-service (upower-configuration-upower config)
                               "libexec/upowerd"
-                              "UPOWER_CONF_FILE_NAME"
-                              (upower-configuration-file config))))
+                              `(("UPOWER_CONF_FILE_NAME"
+                                 ,(upower-configuration-file config))))))
 
 (define (upower-shepherd-service config)
   "Return a shepherd service for UPower with CONFIG."
@@ -349,8 +349,8 @@ users are allowed."
 (define (geoclue-dbus-service config)
   (list (wrapped-dbus-service (geoclue-configuration-geoclue config)
                               "libexec/geoclue"
-                              "GEOCLUE_CONFIG_FILE"
-                              (geoclue-configuration-file config))))
+                              `(("GEOCLUE_CONFIG_FILE"
+                                 ,(geoclue-configuration-file config))))))
 
 (define %geoclue-accounts
   (list (user-group (name "geoclue") (system? #t))
@@ -702,8 +702,8 @@ include the @command{udisksctl} command, part of UDisks, 
and GNOME Disks."
 (define (elogind-dbus-service config)
   (list (wrapped-dbus-service (elogind-package config)
                               "libexec/elogind/elogind"
-                              "ELOGIND_CONF_FILE"
-                              (elogind-configuration-file config))))
+                              `(("ELOGIND_CONF_FILE"
+                                 ,(elogind-configuration-file config))))))
 
 (define (pam-extension-procedure config)
   "Return an extension for PAM-ROOT-SERVICE-TYPE that ensures that all the PAM



reply via email to

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