~ruther/guix-local

206446b4840279596b3b4522beaee43a3359133d — Bruno Victal 3 years ago 0185b2f
services: audio: Remove redundant list-of-string? predicate.

Use list-of-strings? predicate defined in (gnu services configuration).

* gnu/services/audio.scm (list-of-string?): Remove predicate.
(mpd-serialize-list-of-string): Rename procedure to ...
(mpd-serialize-list-of-strings): ... this.
(mpd-configuration)[environment-variables]: Switch to list-of-strings.
[endpoints]: Switch to maybe-list-of-strings.
(mympd-ip-acl)[allow, deny]: Switch to list-of-strings.
(mympd-serialize-configuration): Rename serialize-list-of-string to
serialize-list-of-strings.
* doc/guix.texi (Audio Services): Update it.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2 files changed, 15 insertions(+), 18 deletions(-)

M doc/guix.texi
M gnu/services/audio.scm
M doc/guix.texi => doc/guix.texi +4 -4
@@ 33501,7 33501,7 @@ The group to run mpd as.
This is a list of symbols naming Shepherd services that this service
will depend on.

@item @code{environment-variables} (default: @code{()}) (type: list-of-string)
@item @code{environment-variables} (default: @code{()}) (type: list-of-strings)
A list of strings specifying environment variables.

@item @code{log-file} (default: @code{"/var/log/mpd/log"}) (type: maybe-string)


@@ 33532,7 33532,7 @@ The location of the sticker database.
@item @code{default-port} (default: @code{6600}) (type: maybe-integer)
The default port to run mpd on.

@item @code{endpoints} (type: maybe-list-of-string)
@item @code{endpoints} (type: maybe-list-of-strings)
The addresses that mpd will bind to.  A port different from @var{default-port}
may be specified, e.g. @code{localhost:6602} and IPv6 addresses must be
enclosed in square brackets when a different port is used.


@@ 33808,10 33808,10 @@ Whether to preserve caches between service restarts.
Available @code{mympd-ip-acl} fields are:

@table @asis
@item @code{allow} (default: @code{()}) (type: list-of-string)
@item @code{allow} (default: @code{()}) (type: list-of-strings)
Allowed IP addresses.

@item @code{deny} (default: @code{()}) (type: list-of-string)
@item @code{deny} (default: @code{()}) (type: list-of-strings)
Disallowed IP addresses.

@end table

M gnu/services/audio.scm => gnu/services/audio.scm +11 -14
@@ 2,7 2,7 @@
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2022 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2022⁠–⁠2023 Bruno Victal <mirai@makinata.eu>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 137,9 137,6 @@
                                   str)
                               #\-) "_")))

(define list-of-string?
  (list-of string?))

(define list-of-symbol?
  (list-of symbol?))



@@ 159,11 156,11 @@
(define mpd-serialize-string mpd-serialize-field)
(define mpd-serialize-boolean mpd-serialize-field)

(define (mpd-serialize-list-of-string field-name value)
(define (mpd-serialize-list-of-strings field-name value)
  #~(string-append #$@(map (cut mpd-serialize-string field-name <>) value)))

(define-maybe string (prefix mpd-))
(define-maybe list-of-string (prefix mpd-))
(define-maybe list-of-strings (prefix mpd-))
(define-maybe boolean (prefix mpd-))

;;; TODO: Procedures for deprecated fields, to be removed.


@@ 349,7 346,7 @@ will depend on."
   empty-serializer)

  (environment-variables
   (list-of-string '())
   (list-of-strings '())
   "A list of strings specifying environment variables."
   empty-serializer)



@@ 400,7 397,7 @@ Available values: @code{notice}, @code{info}, @code{verbose},
   "The default port to run mpd on.")

  (endpoints
   maybe-list-of-string
   maybe-list-of-strings
   "The addresses that mpd will bind to. A port different from
@var{default-port} may be specified, e.g. @code{localhost:6602} and
IPv6 addresses must be enclosed in square brackets when a different


@@ 409,7 406,7 @@ To use a Unix domain socket, an absolute path or a path starting with @code{~}
can be specified here."
   (lambda (_ endpoints)
     (if (maybe-value-set? endpoints)
         (mpd-serialize-list-of-string "bind_to_address" endpoints)
         (mpd-serialize-list-of-strings "bind_to_address" endpoints)
         "")))

  (address ; TODO: deprecated, remove later


@@ 581,11 578,11 @@ appended to the configuration.")

(define-configuration/no-serialization mympd-ip-acl
  (allow
   (list-of-string '())
   (list-of-strings '())
   "Allowed IP addresses.")

  (deny
   (list-of-string '())
   (list-of-strings '())
   "Disallowed IP addresses."))

(define-maybe/no-serialization integer)


@@ 707,12 704,12 @@ prompting a pin from the user.")
      ((? string? val) val)))

  (define (ip-acl-serialize-configuration config)
    (define (serialize-list-of-string prefix lst)
    (define (serialize-list-of-strings prefix lst)
      (map (cut format #f "~a~a" prefix <>) lst))
    (string-join
     (append
      (serialize-list-of-string "+" (mympd-ip-acl-allow config))
      (serialize-list-of-string "-" (mympd-ip-acl-deny config))) ","))
      (serialize-list-of-strings "+" (mympd-ip-acl-allow config))
      (serialize-list-of-strings "-" (mympd-ip-acl-deny config))) ","))

  ;; myMPD configuration fields are serialized as individual files under
  ;; <work-directory>/config/.