diff mbox series

[bug#71735] services: mpd: fix log to file

Message ID 20240623141657.61044-1-yarl-baudig@mailoo.org
State New
Headers show
Series [bug#71735] services: mpd: fix log to file | expand

Commit Message

Yarl Baudig June 23, 2024, 2:15 p.m. UTC
(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'.
---
 gnu/services/audio.scm | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

Comments

Maxim Cournoyer June 24, 2024, 1:45 a.m. UTC | #1
Hi Yarl,

Yarl Baudig <yarl-baudig@mailoo.org> writes:

> (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.

Interesting!  It seems like using a variable in the pattern doesn't work
as I had expected...  Thanks for the fix.

> * gnu/services/audio.scm (mpd): fix buggy 'match'.
> ---
>  gnu/services/audio.scm | 16 ++++++----------
>  1 file changed, 6 insertions(+), 10 deletions(-)
>
> diff --git a/gnu/services/audio.scm b/gnu/services/audio.scm
> index ae991ced4d..2c8af138e7 100644
> --- a/gnu/services/audio.scm
> +++ b/gnu/services/audio.scm
> @@ -251,16 +251,12 @@ (define (mpd-group-sanitizer value)
>           (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))))

Applied, closing!
diff mbox series

Patch

diff --git a/gnu/services/audio.scm b/gnu/services/audio.scm
index ae991ced4d..2c8af138e7 100644
--- a/gnu/services/audio.scm
+++ b/gnu/services/audio.scm
@@ -251,16 +251,12 @@  (define (mpd-group-sanitizer value)
          (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))))
 
 ;;;