about summary refs log tree commit diff
path: root/release.nix
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2014-10-21 21:59:25 +0200
committeraszlig <aszlig@redmoonstudios.org>2014-10-21 21:59:25 +0200
commitee58ad7b4cc50e5bee73c9ee58148abb8bb2698f (patch)
tree2edae5932baf8aa822f3c72f8d133d1635a99d30 /release.nix
parent0ff5229e7d5a22fce194f1ccdd0880eb3184f4ff (diff)
release: Add manual for Vuizvui-specific options.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'release.nix')
-rw-r--r--release.nix62
1 files changed, 59 insertions, 3 deletions
diff --git a/release.nix b/release.nix
index 52126c8c..df248706 100644
--- a/release.nix
+++ b/release.nix
@@ -1,11 +1,67 @@
-with import <nixpkgs/lib>;
+let
+  system = "x86_64-linux";
+  pkgs = import <nixpkgs> { inherit system; };
+
+in with pkgs.lib; with builtins; {
 
-{
   machines = mapAttrs (name: configuration: (import <nixpkgs/nixos> {
     inherit configuration;
   }).system) (import ./network.nix);
 
   tests = {
-    i3 = import ./tests/i3.nix { system = "x86_64-linux"; };
+    i3 = import ./tests/i3.nix { inherit system; };
+  };
+
+  manual = let
+    modules = import <nixpkgs/nixos/lib/eval-config.nix> {
+      modules = import ./modules/module-list.nix;
+      check = false;
+      inherit system;
+    };
+
+    isVuizvui = opt: head (splitString "." opt.name) == "vuizvui";
+    filterDoc = filter (opt: isVuizvui opt && opt.visible && !opt.internal);
+    optionsXML = toXML (filterDoc (optionAttrSetToDocList modules.options));
+    optionsFile = toFile "options.xml" (unsafeDiscardStringContext optionsXML);
+  in pkgs.stdenv.mkDerivation {
+    name = "vuizvui-options";
+
+    buildInputs = singleton pkgs.libxslt;
+
+    xsltFlags = ''
+      --param section.autolabel 1
+      --param section.label.includes.component.label 1
+      --param html.stylesheet 'style.css'
+      --param xref.with.number.and.title 1
+      --param admon.style '''
+    '';
+
+    buildCommand = ''
+      xsltproc -o options-db.xml \
+        ${<nixpkgs/nixos/doc/manual/options-to-docbook.xsl>} \
+        ${optionsFile}
+
+      cat > manual.xml <<XML
+      <book xmlns="http://docbook.org/ns/docbook"
+            xmlns:xlink="http://www.w3.org/1999/xlink"
+            xmlns:xi="http://www.w3.org/2001/XInclude">
+        <title>Vuizvui-specific NixOS options</title>
+        <para>
+          The following NixOS options are specific to Vuizvui:
+        </para>
+        <xi:include href="options-db.xml" />
+      </book>
+      XML
+
+      xsltproc -o "$out/manual.html" $xsltFlags -nonet -xinclude \
+        ${pkgs.docbook5_xsl}/xml/xsl/docbook/xhtml/docbook.xsl \
+        manual.xml
+
+      cp "${<nixpkgs/nixos/doc/manual/style.css>}" "$out/style.css"
+
+      mkdir -p "$out/nix-support"
+      echo "doc manual $out manual.html" \
+        > "$out/nix-support/hydra-build-products"
+    '';
   };
 }