nixos/documentation: Allow the inclusion of a nixpkgs/modules directory

This commit is contained in:
Robert Hensing
2025-08-06 14:31:48 +02:00
parent efaca0c196
commit dcc0ee9ea1
3 changed files with 20 additions and 2 deletions

View File

@@ -31,6 +31,7 @@ let
"doc"
"lib"
"maintainers"
"modules"
"nixos"
"pkgs"
".version"

View File

@@ -49,6 +49,7 @@ let
version = release;
revision = "release-${release}";
prefix = modulesPath;
extraSources = [ (dirOf nixosPath) ];
};
in
docs.optionsNix

View File

@@ -116,18 +116,34 @@ let
&& (t == "directory" -> baseNameOf n != "tests")
&& (t == "file" -> hasSuffix ".nix" n)
);
prefixRegex = "^" + lib.strings.escapeRegex (toString pkgs.path) + "($|/(modules|nixos)($|/.*))";
filteredModules = builtins.path {
name = "source";
inherit (pkgs) path;
filter =
n: t:
builtins.match prefixRegex n != null
&& cleanSourceFilter n t
&& (t == "directory" -> baseNameOf n != "tests")
&& (t == "file" -> hasSuffix ".nix" n);
};
in
pkgs.runCommand "lazy-options.json"
{
rec {
libPath = filter (pkgs.path + "/lib");
pkgsLibPath = filter (pkgs.path + "/pkgs/pkgs-lib");
nixosPath = filter (pkgs.path + "/nixos");
nixosPath = filteredModules + "/nixos";
NIX_ABORT_ON_WARN = warningsAreErrors;
modules =
"[ "
+ concatMapStringsSep " " (p: ''"${removePrefix "${modulesPath}/" (toString p)}"'') docModules.lazy
+ " ]";
passAsFile = [ "modules" ];
disallowedReferences = [
filteredModules
libPath
pkgsLibPath
];
}
''
export NIX_STORE_DIR=$TMPDIR/store