aboutsummaryrefslogtreecommitdiff
path: root/home-manager/doc/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/doc/default.nix')
-rw-r--r--home-manager/doc/default.nix72
1 files changed, 72 insertions, 0 deletions
diff --git a/home-manager/doc/default.nix b/home-manager/doc/default.nix
new file mode 100644
index 00000000000..acfa1f1e49c
--- /dev/null
+++ b/home-manager/doc/default.nix
@@ -0,0 +1,72 @@
+{ pkgs }:
+
+let
+
+ lib = pkgs.lib;
+
+ nmdSrc = pkgs.fetchFromGitLab {
+ name = "nmd";
+ owner = "rycee";
+ repo = "nmd";
+ rev = "9751ca5ef6eb2ef27470010208d4c0a20e89443d";
+ sha256 = "0rbx10n8kk0bvp1nl5c8q79lz1w0p1b8103asbvwps3gmqd070hi";
+ };
+
+ nmd = import nmdSrc { inherit pkgs; };
+
+ # Make sure the used package is scrubbed to avoid actually
+ # instantiating derivations.
+ scrubbedPkgsModule = {
+ imports = [
+ {
+ _module.args = {
+ pkgs = lib.mkForce (nmd.scrubDerivations "pkgs" pkgs);
+ pkgs_i686 = lib.mkForce { };
+ };
+ }
+ ];
+ };
+
+ hmModulesDocs = nmd.buildModulesDocs {
+ modules =
+ import ../modules/modules.nix { inherit lib pkgs; }
+ ++ [ scrubbedPkgsModule ];
+ moduleRootPaths = [ ./.. ];
+ mkModuleUrl = path:
+ "https://github.com/rycee/home-manager/blob/master/${path}#blob-path";
+ channelName = "home-manager";
+ docBook.id = "home-manager-options";
+ };
+
+ docs = nmd.buildDocBookDocs {
+ pathName = "home-manager";
+ modulesDocs = [ hmModulesDocs ];
+ documentsDirectory = ./.;
+ chunkToc = ''
+ <toc>
+ <d:tocentry xmlns:d="http://docbook.org/ns/docbook" linkend="book-home-manager-manual"><?dbhtml filename="index.html"?>
+ <d:tocentry linkend="ch-options"><?dbhtml filename="options.html"?></d:tocentry>
+ <d:tocentry linkend="ch-tools"><?dbhtml filename="tools.html"?></d:tocentry>
+ <d:tocentry linkend="ch-release-notes"><?dbhtml filename="release-notes.html"?></d:tocentry>
+ </d:tocentry>
+ </toc>
+ '';
+ };
+
+in
+
+{
+ inherit nmdSrc;
+
+ options = {
+ json = hmModulesDocs.json.override {
+ path = "share/doc/home-manager/options.json";
+ };
+ };
+
+ manPages = docs.manPages;
+
+ manual = {
+ inherit (docs) html htmlOpenTool;
+ };
+}