From 75bc6da23794da02b8bd4fd3bb9acadb17029315 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Wed, 25 May 2022 12:49:26 +0200 Subject: [PATCH] make-options-doc: Filter options after transformOptions This allows the user-supplied function to change the visibility of options. --- nixos/lib/make-options-doc/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix index 353fdb87a9f..3324ef7fcd6 100644 --- a/nixos/lib/make-options-doc/default.nix +++ b/nixos/lib/make-options-doc/default.nix @@ -47,8 +47,11 @@ let else if lib.isFunction x then "" else x; - optionsList = lib.flip map optionsListVisible - (opt: transformOptions opt + rawOpts = lib.optionAttrSetToDocList options; + transformedOpts = map transformOptions rawOpts; + filteredOpts = lib.filter (opt: opt.visible && !opt.internal) transformedOpts; + optionsList = lib.flip map filteredOpts + (opt: opt // lib.optionalAttrs (opt ? example) { example = substSpecial opt.example; } // lib.optionalAttrs (opt ? default) { default = substSpecial opt.default; } // lib.optionalAttrs (opt ? type) { type = substSpecial opt.type; } @@ -90,9 +93,6 @@ let ''; in "${lib.concatStringsSep "\n" (map (p: describe (unpack p)) packages)}"; - # Remove invisible and internal options. - optionsListVisible = lib.filter (opt: opt.visible && !opt.internal) (lib.optionAttrSetToDocList options); - optionsNix = builtins.listToAttrs (map (o: { name = o.name; value = removeAttrs o ["name" "visible" "internal"]; }) optionsList); in rec {