summary refs log tree commit diff
diff options
context:
space:
mode:
authorYarl Baudig <yarl-baudig@mailoo.org>2024-06-23 16:15:58 +0200
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-06-24 08:34:45 -0400
commit2455c4ded9ff7b44acfb3497963590792657dc2b (patch)
treefa3f5a98fa01658829d3d2fc7530ce367a7e7d2a
parent603d523fc321514fa01d56fe4a96fbc2f9268343 (diff)
downloadguix-2455c4ded9ff7b44acfb3497963590792657dc2b.tar.gz
services: mpd: Fix log to file.
(match value (%unset-value ...)) is equivalent here to
(match value (_ ...)). Even if you set 'log-file to some path, it's always
"syslog" in the configuration file.

* gnu/services/audio.scm (mpd): Fix buggy 'match'.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: If397919c2844d856c69fe00b8907b7b3fd86e564
-rw-r--r--gnu/services/audio.scm18
1 files changed, 8 insertions, 10 deletions
diff --git a/gnu/services/audio.scm b/gnu/services/audio.scm
index ae991ced4d..5d2cd56a17 100644
--- a/gnu/services/audio.scm
+++ b/gnu/services/audio.scm
@@ -251,16 +251,14 @@ user-group instead~%"))
          (configuration-field-error #f 'group value))))
 
 (define (mpd-log-file-sanitizer value)
-  (match value
-    (%unset-value
-     ;; XXX: While leaving the 'sys_log' option out of the mpd.conf file is
-     ;; supposed to cause logging to happen via systemd (elogind provides a
-     ;; compatible interface), this doesn't work (nothing gets logged); use
-     ;; syslog instead.
-     "syslog")
-    ((? string?)
-     value)
-    (_ (configuration-field-error #f 'log-file value))))
+  ;; XXX: While leaving the 'sys_log' option out of the mpd.conf file is
+  ;; supposed to cause logging to happen via systemd (elogind provides a
+  ;; compatible interface), this doesn't work (nothing gets logged); use
+  ;; syslog instead.
+  (let ((value (maybe-value value "syslog")))
+    (if (string? value)
+        value
+        (configuration-field-error #f 'log-file value))))
 
 ;;;