aboutsummaryrefslogtreecommitdiff
path: root/nixos/lib
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2019-08-10 20:07:05 +0200
committerDomen Kožar <domen@dev.si>2019-08-10 20:11:04 +0200
commit6cf861c617d6a0a98129bf6c4d54874ff714636b (patch)
tree07327363489ef91bfd0a77c2a34dfc97c5509399 /nixos/lib
parent3a93fcfd1ef1ac2bcba27cf630fe8e77a89eb17e (diff)
make-options-doc: add asciidoc variant
Diffstat (limited to 'nixos/lib')
-rw-r--r--nixos/lib/make-options-doc/default.nix38
1 files changed, 38 insertions, 0 deletions
diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix
index c8f40f7492e..df21d15e6eb 100644
--- a/nixos/lib/make-options-doc/default.nix
+++ b/nixos/lib/make-options-doc/default.nix
@@ -90,9 +90,47 @@ let
optionsNix = builtins.listToAttrs (map (o: { name = o.name; value = removeAttrs o ["name" "visible" "internal"]; }) optionsList);
+ # TODO: declarations: link to github
+ singleAsciiDoc = name: value: ''
+ == ${name}
+
+ ${value.description}
+
+ [discrete]
+ === details
+
+ Type:: ${value.type}
+ ${ if pkgs.lib.hasAttr "default" value
+ then ''
+ Default::
+ +
+ ----
+ ${builtins.toJSON value.default}
+ ----
+ ''
+ else "No Default:: {blank}"
+ }
+ ${ if value.readOnly
+ then "Read Only:: {blank}"
+ else ""
+ }
+ ${ if pkgs.lib.hasAttr "example" value
+ then ''
+ Example::
+ +
+ ----
+ ${builtins.toJSON value.example}
+ ----
+ ''
+ else "No Example:: {blank}"
+ }
+ '';
+
in rec {
inherit optionsNix;
+ optionsAsciiDoc = pkgs.lib.concatStringsSep "\n" (pkgs.lib.mapAttrsToList singleAsciiDoc optionsNix);
+
optionsJSON = pkgs.runCommand "options.json"
{ meta.description = "List of NixOS options in JSON format";
}