summary refs log tree commit diff
path: root/doc/doc-support/lib-function-docs.nix
diff options
context:
space:
mode:
authorGraham Christensen <graham@grahamc.com>2019-07-04 08:23:39 -0400
committerGraham Christensen <graham@grahamc.com>2019-07-04 09:07:47 -0400
commitcd6bf8aa00962766e4db9f26e36848b6be8dd096 (patch)
treebdcca190ea7a29c855f8ac63735566dc1f775ade /doc/doc-support/lib-function-docs.nix
parentddfe184efcc2152b741bc0a8eee3dea12c4cb2f8 (diff)
docs: use a single nix-build for all the generate function docs
Diffstat (limited to 'doc/doc-support/lib-function-docs.nix')
-rw-r--r--doc/doc-support/lib-function-docs.nix26
1 files changed, 26 insertions, 0 deletions
diff --git a/doc/doc-support/lib-function-docs.nix b/doc/doc-support/lib-function-docs.nix
new file mode 100644
index 0000000000000..5199b949e7b86
--- /dev/null
+++ b/doc/doc-support/lib-function-docs.nix
@@ -0,0 +1,26 @@
+# Generates the documentation for library functons via nixdoc. To add
+# another library function file to this list, the include list in the
+# file `doc/functions/library.xml` must also be updated.
+
+{ pkgs ? import ./.. {}, locationsXml }:
+
+with pkgs; stdenv.mkDerivation {
+  name = "nixpkgs-lib-docs";
+  src = ./../../lib;
+
+  buildInputs = [ nixdoc ];
+  installPhase = ''
+    function docgen {
+      nixdoc -c "$1" -d "$2" -f "../lib/$1.nix"  > "$out/$1.xml"
+    }
+
+    mkdir -p $out
+    ln -s ${locationsXml} $out/locations.xml
+
+    docgen strings 'String manipulation functions'
+    docgen trivial 'Miscellaneous functions'
+    docgen lists 'List manipulation functions'
+    docgen debug 'Debugging functions'
+    docgen options 'NixOS / nixpkgs option handling'
+  '';
+}