From bb716e8d9d7982e92fbb624766f05b7398640bc5 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 12 Apr 2021 16:58:15 -0400 Subject: 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. --- gnu/services/configuration.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 ;;; Copyright © 2017, 2018 Clément Lassieur ;;; Copyright © 2021 Xinglu Chen +;;; Copyright © 2021 Maxim Cournoyer ;;; ;;; 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)))) -- cgit 1.4.1