services: configuration: Document multiple configurations per field.

* gnu/services/configuration.scm (generate-documentation): Filter for all
configurations associated with each field-name.
* doc/guix.texi (Complex Configurations): Describe use case for multiple
field-names.

Change-Id: I6d1e7b8858231aa05fda884b31a9bd0a48f07293
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Herman Rimm 2024-09-27 20:39:19 +02:00 committed by Ludovic Courtès
parent 41b5b723b3
commit 766ad072ad
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 10 additions and 3 deletions

View file

@ -44702,7 +44702,9 @@ available for the configuration record.
@var{sub-documentation} is a @code{(@var{field-name}
@var{configuration-name})} tuple. @var{field-name} is the name of the
field which takes another configuration record as its value, and
@var{configuration-name} is the name of that configuration record.
@var{configuration-name} is the name of that configuration record. The
same value may be used for multiple @var{field-name}s, in case a field
accepts different types of configurations.
@var{sub-documentation} is only needed if there are nested configuration
records. For example, the @code{getmail-configuration} record

View file

@ -7,6 +7,7 @@
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@ -460,8 +461,12 @@ (define (show-default val)
(para ,@field-docs)
,@(append-map
generate
(or (assq-ref sub-documentation field-name)
'())))))
(filter-map
(match-lambda
((name config)
(and (eq? name field-name)
config)))
sub-documentation)))))
fields)))))))
(stexi->texi `(*fragment* . ,(generate documentation-name))))