1

Update modules-options-doc for system modules

This commit is contained in:
2023-05-24 20:49:21 +02:00
parent 5c58b7b455
commit 4d27d8e513

View File

@ -5,23 +5,23 @@
mylib, mylib,
... ...
}: let }: let
# create a module that only contains the options # create a module that only contains the options, type can be home or system
toModule = name: {options.modules.${name} = import ../../home/modules/${name}/options.nix {inherit lib mylib;};}; toModule = type: name: {options.modules.${name} = import ../../${type}/modules/${name}/options.nix {inherit lib mylib;};};
# evaluate a single module # evaluate a single module
evalModule = name: (lib.evalModules {modules = [(toModule name)];}); evalModule = type: name: (lib.evalModules {modules = [(toModule type name)];});
# generate a single module doc # generate a single module doc
optionsDoc = name: pkgs.nixosOptionsDoc {options = (evalModule name).options;}; optionsDoc = type: name: pkgs.nixosOptionsDoc {options = (evalModule type name).options;};
# copy the markdown for a single generated optionsDoc # copy the markdown for a single generated optionsDoc
optionsMD = name: optionsMD = type: name:
stdenv.mkDerivation { stdenv.mkDerivation {
src = ./.; src = ./.;
name = "options-doc-${name}"; name = "options-doc-${name}";
buildPhase = '' buildPhase = ''
mkdir $out mkdir $out
cat ${(optionsDoc name).optionsCommonMark} >> $out/${name}.md cat ${(optionsDoc type name).optionsCommonMark} >> $out/${name}.md
''; '';
}; };
@ -36,32 +36,37 @@
''; '';
}; };
in in
names: home-modules: system-modules:
pkgs.symlinkJoin { pkgs.symlinkJoin {
name = "modules-options-doc-md"; name = "modules-options-doc-md";
paths = (map optionsMD names) ++ [index]; paths = (map (optionsMD "home") home-modules) ++ (map (optionsMD "system") system-modules) ++ [index];
}; };
# generate the actual package (calls all of the above) # generate the actual package (calls all of the above)
modules = [ home-modules = [
"audio" "audio"
"chromium"
"emacs" "emacs"
"email" "email"
"firefox" "firefox"
"fish" "fish"
"flatpak" "flatpak"
"gaming" "gaming"
"gnome" "helix"
"hyprland" "hyprland"
"kitty" "kitty"
"misc" "misc"
"neovim" "neovim"
"nextcloud" "nextcloud"
"nzbget" "nnn"
"plasma"
"ranger" "ranger"
"vscode"
]; ];
docs = allOptionsMDs modules; system-modules = [
"containers"
"systemd-networkd"
];
docs = allOptionsMDs home-modules system-modules;
in in
stdenv.mkDerivation { stdenv.mkDerivation {
src = ./.; src = ./.;