Unverified Commit 949797e2 authored by Silvan Mosberger's avatar Silvan Mosberger Committed by GitHub
Browse files

Merge pull request #328269 from tweag/doc-no-warnings

doc: Prevent evaluation warnings
parents 80d2de8b f01573b6
Loading
Loading
Loading
Loading
+15 −8
Original line number Diff line number Diff line
@@ -4,24 +4,31 @@

with pkgs;

let
  locationsJSON = import ./lib-function-locations.nix { inherit pkgs nixpkgs libsets; };
in
stdenv.mkDerivation {
  name = "nixpkgs-lib-docs";
  src = ../../lib;
  src = pkgs.lib.fileset.toSource {
    root = ../..;
    fileset = ../../lib;
  };

  buildInputs = [ nixdoc ];
  buildInputs = [ nixdoc nix ];
  installPhase = ''
    export NIX_STATE_DIR=$(mktemp -d)
    nix-instantiate --eval --strict --json ${./lib-function-locations.nix} \
      --arg nixpkgsPath "./." \
      --argstr revision ${nixpkgs.rev or "master"} \
      --argstr libsetsJSON ${pkgs.lib.escapeShellArg (builtins.toJSON libsets)} \
      > locations.json

    function docgen {
      name=$1
      baseName=$2
      description=$3
      # TODO: wrap lib.$name in <literal>, make nixdoc not escape it
      if [[ -e "../lib/$baseName.nix" ]]; then
        nixdoc -c "$name" -d "lib.$name: $description" -l ${locationsJSON} -f "$baseName.nix" > "$out/$name.md"
      if [[ -e "lib/$baseName.nix" ]]; then
        nixdoc -c "$name" -d "lib.$name: $description" -l locations.json -f "lib/$baseName.nix" > "$out/$name.md"
      else
        nixdoc -c "$name" -d "lib.$name: $description" -l ${locationsJSON} -f "$baseName/default.nix" > "$out/$name.md"
        nixdoc -c "$name" -d "lib.$name: $description" -l locations.json -f "lib/$baseName/default.nix" > "$out/$name.md"
      fi
      echo "$out/$name.md" >> "$out/index.md"
    }
+8 −9
Original line number Diff line number Diff line
{ pkgs, nixpkgs ? { }, libsets }:
{ nixpkgsPath, revision, libsetsJSON }:
let
  revision = pkgs.lib.trivial.revisionWithDefault (nixpkgs.rev or "master");
  lib = import (nixpkgsPath + "/lib");
  libsets = builtins.fromJSON libsetsJSON;

  libDefPos = prefix: set:
    builtins.concatMap
      (name: [{
        name = builtins.concatStringsSep "." (prefix ++ [name]);
        location = builtins.unsafeGetAttrPos name set;
      }] ++ nixpkgsLib.optionals
      }] ++ lib.optionals
        (builtins.length prefix == 0 && builtins.isAttrs set.${name})
        (libDefPos (prefix ++ [name]) set.${name})
      ) (builtins.attrNames set);
@@ -20,8 +21,6 @@ let
      })
      (builtins.map (x: x.name) libsets);

  nixpkgsLib = pkgs.lib;

  flattenedLibSubset = { subsetname, functions }:
  builtins.map
    (fn: {
@@ -38,13 +37,13 @@ let
      substr = builtins.substring prefixLen filenameLen filename;
      in substr;

  removeNixpkgs = removeFilenamePrefix (builtins.toString pkgs.path);
  removeNixpkgs = removeFilenamePrefix (builtins.toString nixpkgsPath);

  liblocations =
    builtins.filter
      (elem: elem.value != null)
      (nixpkgsLib.lists.flatten
        (locatedlibsets nixpkgsLib));
      (lib.lists.flatten
        (locatedlibsets lib));

  fnLocationRelative = { name, value }:
    {
@@ -72,4 +71,4 @@ let
    relativeLocs);

in
pkgs.writeText "locations.json" (builtins.toJSON jsonLocs)
jsonLocs