summary refs log tree commit diff
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)
downloadnixpkgs-6cf861c617d6a0a98129bf6c4d54874ff714636b.tar
nixpkgs-6cf861c617d6a0a98129bf6c4d54874ff714636b.tar.gz
nixpkgs-6cf861c617d6a0a98129bf6c4d54874ff714636b.tar.bz2
nixpkgs-6cf861c617d6a0a98129bf6c4d54874ff714636b.tar.lz
nixpkgs-6cf861c617d6a0a98129bf6c4d54874ff714636b.tar.xz
nixpkgs-6cf861c617d6a0a98129bf6c4d54874ff714636b.tar.zst
nixpkgs-6cf861c617d6a0a98129bf6c4d54874ff714636b.zip
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";
     }