mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
services: configuration: Add some commonly used predicates.
* gnu/services/configuration.scm (list-of-packages?, list-of-symbols?): New predicate. * gnu/services/audio.scm (list-of-symbol?): Remove. * gnu/services/telephony.scm (string-list?): Remove. (serialize-string-list): Rename to … (serialize-list-of-strings): … this. (account-fingerprint-list?, jami-account-list?): Use list-of. * doc/guix.texi: Update it. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
parent
3872ecf274
commit
00a28bc435
4 changed files with 29 additions and 21 deletions
|
@ -28188,7 +28188,7 @@ to maintain communication between devices on such network even when the
|
|||
connection to the Internet has been lost. When left unspecified,
|
||||
the value from the account archive prevails.
|
||||
|
||||
@item @code{bootstrap-hostnames} (type: maybe-string-list)
|
||||
@item @code{bootstrap-hostnames} (type: maybe-list-of-strings)
|
||||
A list of hostnames or IPs pointing to OpenDHT nodes, that should be
|
||||
used to initially join the OpenDHT network. When left unspecified, the
|
||||
value from the account archive prevails.
|
||||
|
@ -34509,7 +34509,7 @@ The group to run mpd as.
|
|||
|
||||
The default @code{%mpd-group} is a system group with name ``mpd''.
|
||||
|
||||
@item @code{shepherd-requirement} (default: @code{'()}) (type: list-of-symbol)
|
||||
@item @code{shepherd-requirement} (default: @code{'()}) (type: list-of-symbols)
|
||||
A list of symbols naming Shepherd services that this service
|
||||
will depend on.
|
||||
|
||||
|
@ -34759,7 +34759,7 @@ Available @code{mympd-configuration} fields are:
|
|||
@item @code{package} (default: @code{mympd}) (type: file-like)
|
||||
The package object of the myMPD server.
|
||||
|
||||
@item @code{shepherd-requirement} (default: @code{'()}) (type: list-of-symbol)
|
||||
@item @code{shepherd-requirement} (default: @code{'()}) (type: list-of-symbols)
|
||||
This is a list of symbols naming Shepherd services that this service
|
||||
will depend on.
|
||||
|
||||
|
|
|
@ -138,9 +138,6 @@ (define (uglify-field-name field-name)
|
|||
str)
|
||||
#\-) "_")))
|
||||
|
||||
(define list-of-symbol?
|
||||
(list-of symbol?))
|
||||
|
||||
;; Helpers for deprecated field types, to be removed later.
|
||||
(define %lazy-group (make-symbol "%lazy-group"))
|
||||
|
||||
|
@ -428,7 +425,7 @@ (define-configuration mpd-configuration
|
|||
(sanitizer mpd-group-sanitizer))
|
||||
|
||||
(shepherd-requirement
|
||||
(list-of-symbol '())
|
||||
(list-of-symbols '())
|
||||
"This is a list of symbols naming Shepherd services that this service
|
||||
will depend on."
|
||||
empty-serializer)
|
||||
|
@ -763,7 +760,7 @@ (define-configuration/no-serialization mympd-configuration
|
|||
empty-serializer)
|
||||
|
||||
(shepherd-requirement
|
||||
(list-of-symbol '())
|
||||
(list-of-symbols '())
|
||||
"This is a list of symbols naming Shepherd services that this service
|
||||
will depend on."
|
||||
empty-serializer)
|
||||
|
|
|
@ -80,7 +80,9 @@ (define-module (gnu services configuration)
|
|||
interpose
|
||||
list-of
|
||||
|
||||
list-of-packages?
|
||||
list-of-strings?
|
||||
list-of-symbols?
|
||||
alist?
|
||||
serialize-file-like
|
||||
text-config?
|
||||
|
@ -500,6 +502,11 @@ (define* (interpose ls #:optional (delimiter "\n") (grammar 'infix))
|
|||
(cons delimiter acc))))
|
||||
'() ls))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Commonly used predicates
|
||||
;;;
|
||||
|
||||
(define (list-of pred?)
|
||||
"Return a procedure that takes a list and check if all the elements of
|
||||
the list result in @code{#t} when applying PRED? on them."
|
||||
|
@ -508,10 +515,20 @@ (define (list-of pred?)
|
|||
(every pred? x)
|
||||
#f)))
|
||||
|
||||
(define list-of-packages?
|
||||
(list-of package?))
|
||||
|
||||
(define list-of-strings?
|
||||
(list-of string?))
|
||||
|
||||
(define list-of-symbols?
|
||||
(list-of symbol?))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Special serializers
|
||||
;;;
|
||||
|
||||
(define alist?
|
||||
(list-of pair?))
|
||||
|
||||
|
|
|
@ -117,15 +117,10 @@ (define (string-or-computed-file? val)
|
|||
(or (string? val)
|
||||
(computed-file? val)))
|
||||
|
||||
(define (string-list? val)
|
||||
(and (list? val)
|
||||
(and-map string? val)))
|
||||
(define account-fingerprint-list?
|
||||
(list-of account-fingerprint?))
|
||||
|
||||
(define (account-fingerprint-list? val)
|
||||
(and (list? val)
|
||||
(and-map account-fingerprint? val)))
|
||||
|
||||
(define-maybe string-list)
|
||||
(define-maybe list-of-strings)
|
||||
|
||||
(define-maybe/no-serialization account-fingerprint-list)
|
||||
|
||||
|
@ -135,7 +130,7 @@ (define-maybe string)
|
|||
|
||||
;;; The following serializers are used to derive an account details alist from
|
||||
;;; a <jami-account> record.
|
||||
(define (serialize-string-list _ val)
|
||||
(define (serialize-list-of-strings _ val)
|
||||
(string-join val ";"))
|
||||
|
||||
(define (serialize-boolean _ val)
|
||||
|
@ -188,7 +183,7 @@ (define-configuration jami-account
|
|||
connection to the the Internet has been lost. When left unspecified, the
|
||||
value from the account archive prevails.")
|
||||
(bootstrap-hostnames
|
||||
maybe-string-list
|
||||
maybe-list-of-strings
|
||||
"A list of hostnames or IPs pointing to OpenDHT nodes, that should be used
|
||||
to initially join the OpenDHT network. When left unspecified, the value from
|
||||
the account archive prevails.")
|
||||
|
@ -220,9 +215,8 @@ (define jami-account-transducer
|
|||
|
||||
(list-transduce jami-account-transducer rcons jami-account-fields))
|
||||
|
||||
(define (jami-account-list? val)
|
||||
(and (list? val)
|
||||
(and-map jami-account? val)))
|
||||
(define jami-account-list?
|
||||
(list-of jami-account?))
|
||||
|
||||
(define-maybe/no-serialization jami-account-list)
|
||||
|
||||
|
|
Loading…
Reference in a new issue