From b1ce3cc1729fad3cc41066547d7fd502770623b2 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 25 Aug 2014 14:33:17 +0200 Subject: [PATCH] Manual: Handle XML files in subdirectories --- lib/sources.nix | 6 +++--- nixos/doc/manual/default.nix | 26 +++++++++++++++----------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/lib/sources.nix b/lib/sources.nix index a80e4397d6a4..4ed16d65d2b7 100644 --- a/lib/sources.nix +++ b/lib/sources.nix @@ -21,12 +21,12 @@ rec { # Get all files ending with the specified suffices from the given - # directory. E.g. `sourceFilesBySuffices ./dir [".xml" ".c"]'. + # directory or its descendants. E.g. `sourceFilesBySuffices ./dir + # [".xml" ".c"]'. sourceFilesBySuffices = path: exts: let filter = name: type: let base = baseNameOf (toString name); - in type != "directory" && lib.any (ext: lib.hasSuffix ext base) exts; + in type == "directory" || lib.any (ext: lib.hasSuffix ext base) exts; in builtins.filterSource filter path; - } diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix index 55533a05b066..df524c3faaca 100644 --- a/nixos/doc/manual/default.nix +++ b/nixos/doc/manual/default.nix @@ -36,13 +36,22 @@ let -o $out ${./options-to-docbook.xsl} ${optionsXML} ''; + sources = sourceFilesBySuffices ./. [".xml"]; + + copySources = + '' + cp -prd $sources/* . # */ + ln -s ${optionsDocBook} options-db.xml + echo "${version}" > version + ''; + in rec { # Generate the NixOS manual. manual = stdenv.mkDerivation { name = "nixos-manual"; - sources = sourceFilesBySuffices ./. [".xml"]; + inherit sources; buildInputs = [ libxml2 libxslt ]; @@ -57,9 +66,7 @@ in rec { ''; buildCommand = '' - ln -s $sources/*.xml . # */ - ln -s ${optionsDocBook} options-db.xml - echo "${version}" > version + ${copySources} # Check the validity of the manual sources. xmllint --noout --nonet --xinclude --noxincludenode \ @@ -90,7 +97,7 @@ in rec { manualPDF = stdenv.mkDerivation { name = "nixos-manual-pdf"; - sources = sourceFilesBySuffices ./. [".xml"]; + inherit sources; buildInputs = [ libxml2 libxslt dblatex tetex ]; @@ -98,9 +105,7 @@ in rec { # TeX needs a writable font cache. export VARTEXFONTS=$TMPDIR/texfonts - ln -s $sources/*.xml . # */ - ln -s ${optionsDocBook} options-db.xml - echo "${version}" > version + ${copySources} dst=$out/share/doc/nixos mkdir -p $dst @@ -117,13 +122,12 @@ in rec { manpages = stdenv.mkDerivation { name = "nixos-manpages"; - sources = sourceFilesBySuffices ./. [".xml"]; + inherit sources; buildInputs = [ libxml2 libxslt ]; buildCommand = '' - ln -s $sources/*.xml . # */ - ln -s ${optionsDocBook} options-db.xml + ${copySources} # Check the validity of the manual sources. xmllint --noout --nonet --xinclude --noxincludenode \