From e9a7f80681e3005c6edfdfcdf11099d544cc515a Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 4 Jan 2008 14:24:42 +0000 Subject: [PATCH] * Build the Nix manual in a Nix expression instead of a Makefile so that it becomes easier to include it on the CD. svn path=/nixos/trunk/; revision=10070 --- doc/manual/Makefile | 22 ---------------------- doc/manual/default.nix | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 22 deletions(-) delete mode 100644 doc/manual/Makefile create mode 100644 doc/manual/default.nix diff --git a/doc/manual/Makefile b/doc/manual/Makefile deleted file mode 100644 index 3ac2d0dcd4d3..000000000000 --- a/doc/manual/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -XMLLINT = xmllint --catalogs -XSLTPROC = xsltproc --catalogs \ - --param section.autolabel 1 \ - --param section.label.includes.component.label 1 \ - --param html.stylesheet \'style.css\' \ - --param xref.with.number.and.title 1 \ - --param toc.section.depth 3 \ - --param admon.style \'\' \ - --param callout.graphics.extension \'.gif\' - -docbookxsl = $(HOME)/.nix-profile/xml/xsl/docbook - -manual.html: *.xml options-db.xml - $(XSLTPROC) --nonet --xinclude --output $@ \ - $(docbookxsl)/html/docbook.xsl manual.xml - -options-db.xml: options.xml options-to-docbook.xsl - xsltproc -o options-db.xml options-to-docbook.xsl options.xml - -options.xml: ../../system/options.nix - echo '((pkgs:(pkgs.lib.optionAttrSetToDocList "" (import ../../system/options.nix {pkgs = pkgs; mkOption = pkgs.lib.mkOption; }))) (import ../../pkgs/top-level/all-packages.nix {}))' | \ - nix-instantiate --eval-only --xml --strict - > options.xml || (rm options.xml && false) diff --git a/doc/manual/default.nix b/doc/manual/default.nix new file mode 100644 index 000000000000..a42b947cd596 --- /dev/null +++ b/doc/manual/default.nix @@ -0,0 +1,42 @@ +let + + pkgs = import ../../pkgs/top-level/all-packages.nix {}; + + options = builtins.toFile "options.xml" (builtins.unsafeDiscardStringContext + (builtins.toXML (pkgs.lib.optionAttrSetToDocList "" + (import ../../system/options.nix {pkgs = pkgs; mkOption = pkgs.lib.mkOption;})))); + + optionsDocBook = pkgs.runCommand "options-db.xml" {} '' + ${pkgs.libxslt}/bin/xsltproc -o $out ${./options-to-docbook.xsl} ${options} + ''; + + manual = pkgs.stdenv.mkDerivation { + name = "nixos-manual"; + + sources = pkgs.lib.sourceFilesBySuffices ./. [".xml"]; + + buildInputs = [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 toc.section.depth 3 + --param admon.style ''' + --param callout.graphics.extension '.gif' + ''; + + buildCommand = '' + ensureDir $out + ln -s $sources/*.xml . + ln -s ${optionsDocBook} options-db.xml + xsltproc $xsltFlags --nonet --xinclude \ + --output $out/manual.html \ + ${pkgs.docbook5_xsl}/xml/xsl/docbook/html/docbook.xsl \ + ./manual.xml + cp ${./style.css} $out/style.css + ''; + }; + +in manual