guix-commits
[Top][All Lists]
Advanced

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

03/04: services: dbus: Remove non-existent directories from 'system-loca


From: guix-commits
Subject: 03/04: services: dbus: Remove non-existent directories from 'system-local.conf'.
Date: Fri, 1 Nov 2019 19:12:30 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 27727b18b8597f7c6fd99adc7797c555aa1c92e9
Author: Ludovic Courtès <address@hidden>
Date:   Fri Nov 1 23:48:40 2019 +0100

    services: dbus: Remove non-existent directories from 'system-local.conf'.
    
    This typically halves the number of entries in
    /etc/dbus-1/system-local.conf.
    
    * gnu/services/dbus.scm (dbus-configuration-directory)[build](directives):
    New macro.
    (services->sxml): Use it.
---
 gnu/services/dbus.scm | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm
index fcdeb3b..a697a88 100644
--- a/gnu/services/dbus.scm
+++ b/gnu/services/dbus.scm
@@ -86,6 +86,19 @@ includes the @code{etc/dbus-1/system.d} directories of each 
package listed in
         (use-modules (sxml simple)
                      (srfi srfi-1))
 
+        (define-syntax directives
+          (syntax-rules ()
+            ;; Expand the given directives (SXML expressions) only if their
+            ;; key names a file that exists.
+            ((_ (name directory) rest ...)
+             (let ((dir directory))
+               (if (file-exists? dir)
+                   `((name ,dir)
+                     ,@(directives rest ...))
+                   (directives rest ...))))
+            ((_)
+             '())))
+
         (define (services->sxml services)
           ;; Return the SXML 'includedir' clauses for DIRS.
           `(busconfig
@@ -98,12 +111,13 @@ includes the @code{etc/dbus-1/system.d} directories of 
each package listed in
             (servicedir "/etc/dbus-1/system-services")
 
             ,@(append-map (lambda (dir)
-                            `((includedir
-                               ,(string-append dir "/etc/dbus-1/system.d"))
-                              (includedir
-                               ,(string-append dir "/share/dbus-1/system.d"))
-                              (servicedir       ;for '.service' files
-                               ,(string-append dir "/share/dbus-1/services"))))
+                            (directives
+                             (includedir
+                              (string-append dir "/etc/dbus-1/system.d"))
+                             (includedir
+                              (string-append dir "/share/dbus-1/system.d"))
+                             (servicedir          ;for '.service' files
+                              (string-append dir "/share/dbus-1/services"))))
                           services)))
 
         (mkdir #$output)



reply via email to

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