Message ID | 20240623141657.61044-1-yarl-baudig@mailoo.org |
---|---|
State | New |
Headers | show |
Series | [bug#71735] services: mpd: fix log to file | expand |
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 --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)))) ;;;