[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)