configuration.nix/docs/default.nix

33 lines
1.1 KiB
Nix
Raw Normal View History

{ pkgs, lib }:
let
filterVisible = toplevelOption: option: option // { visible = option.visible && builtins.elemAt option.loc 0 == toplevelOption; };
nixos-eval = lib.evalModules { modules = [ ../nixos/options.nix ]; };
home-eval = lib.evalModules {
modules = [ ../home/options.nix ];
specialArgs = { inherit pkgs; };
};
2024-01-15 14:44:45 +01:00
nixos-markdown = (pkgs.nixosOptionsDoc {
inherit (nixos-eval) options;
transformOptions = filterVisible "jconfig";
}).optionsCommonMark;
home-markdown = (pkgs.nixosOptionsDoc {
inherit (home-eval) options;
transformOptions = filterVisible "jhome";
2024-01-15 14:46:04 +01:00
}).optionsCommonMark;
in
2024-01-15 14:35:33 +01:00
{
inherit nixos-markdown home-markdown;
2024-01-15 14:35:33 +01:00
docs = pkgs.stdenvNoCC.mkDerivation {
name = "nixos-configuration-book";
src = ./.;
2024-01-15 14:35:33 +01:00
patchPhase = ''
# copy generated options removing the declared by statement
sed '/^\*Declared by:\*$/,/^$/d' <${home-markdown} >> src/home-options.md
sed '/^\*Declared by:\*$/,/^$/d' <${nixos-markdown} >> src/nixos-options.md
2024-01-15 14:35:33 +01:00
'';
2024-01-15 14:35:33 +01:00
buildPhase = "${pkgs.mdbook}/bin/mdbook build --dest-dir $out";
};
}