56 lines
1.2 KiB
Nix
56 lines
1.2 KiB
Nix
{ stdenv,
|
|
lib,
|
|
liminix,
|
|
gnumake,
|
|
fennel,
|
|
pandoc,
|
|
luaPackages,
|
|
asciidoctor,
|
|
borderVmConf
|
|
}:
|
|
let
|
|
json =
|
|
(import liminix {
|
|
inherit borderVmConf;
|
|
device = import (liminix + "/devices/qemu");
|
|
liminix-config =
|
|
{ ... }:
|
|
{
|
|
imports = [ ./modules/all-modules.nix ];
|
|
};
|
|
}).outputs.optionsJson;
|
|
in
|
|
stdenv.mkDerivation {
|
|
name = "liminix-doc";
|
|
nativeBuildInputs = [
|
|
gnumake
|
|
fennel
|
|
pandoc
|
|
asciidoctor
|
|
luaPackages.lyaml
|
|
];
|
|
|
|
src = lib.sources.sourceFilesBySuffices
|
|
(lib.cleanSource ./. ) [
|
|
".adoc"
|
|
".nix" ".rst" "Makefile" ".svg"
|
|
".fnl" ".py" ".css" ".html"
|
|
".md" ".html.in"
|
|
];
|
|
|
|
buildPhase = ''
|
|
cat ${json} | fennel --correlate doc/parse-options.fnl > doc/module-options-generated.inc.rst
|
|
cat ${json} | fennel --correlate doc/parse-options-outputs.fnl > doc/outputs-generated.inc.rst
|
|
cp ${(import ./doc/hardware.nix)} doc/hardware.rst
|
|
make -C doc html
|
|
'';
|
|
installPhase = ''
|
|
mkdir -p $out/nix-support
|
|
cd doc
|
|
make install prefix=$out
|
|
ln -s ${json} $out/options.json
|
|
echo "file source-dist \"$out/share/doc/liminix\"" \
|
|
> $out/nix-support/hydra-build-products
|
|
'';
|
|
}
|