diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-04-12 16:58:15 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-05-07 08:59:31 -0400 |
commit | bb716e8d9d7982e92fbb624766f05b7398640bc5 (patch) | |
tree | aec8a3c0df7b4aef85268d8288b9acb3e83f9f0a /gnu/services | |
parent | d1caabbce7fb2ade4cca5ef22234670d3eca16fd (diff) | |
download | guix-bb716e8d9d7982e92fbb624766f05b7398640bc5.tar.gz |
services: configuration: Add a new helper to ease generating documentation.
The original (undocumented) procedure to generate the doc has a difficult to grasp interface; add a simpler one on top of it. * gnu/services/configuration.scm (configuration->documentation): New procedure.
Diffstat (limited to 'gnu/services')
-rw-r--r-- | gnu/services/configuration.scm | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm index 15bd30970c..7c9146362f 100644 --- a/gnu/services/configuration.scm +++ b/gnu/services/configuration.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> +;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,6 +45,7 @@ define-configuration validate-configuration generate-documentation + configuration->documentation serialize-package)) ;;; Commentary: @@ -214,3 +216,15 @@ does not have a default value" field kind))) (or (assq-ref sub-documentation field-name) '()))))) fields))))) (stexi->texi `(*fragment* . ,(generate documentation-name)))) + +(define (configuration->documentation configuration-symbol) + "Take CONFIGURATION-SYMBOL, the symbol corresponding to the name used when +defining a configuration record with DEFINE-CONFIGURATION, and output the +Texinfo documentation of its fields." + ;; This is helper for a simple, straight-forward application of + ;; GENERATE-DOCUMENTATION. + (let ((fields-getter (module-ref (current-module) + (symbol-append configuration-symbol + '-fields)))) + (format #t (generate-documentation `((,configuration-symbol ,fields-getter)) + configuration-symbol)))) |