Commit dcc0ee9e authored by Robert Hensing's avatar Robert Hensing
Browse files

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

parent efaca0c1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ let
          "doc"
          "lib"
          "maintainers"
          "modules"
          "nixos"
          "pkgs"
          ".version"
+1 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ let
    version = release;
    revision = "release-${release}";
    prefix = modulesPath;
    extraSources = [ (dirOf nixosPath) ];
  };
in
docs.optionsNix
+18 −2
Original line number Diff line number Diff line
@@ -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