diff options
author | Gabriel Gonzalez <Gabriel439@gmail.com> | 2020-11-25 22:02:26 -0800 |
---|---|---|
committer | Emery Hemingway <ehmry@posteo.net> | 2020-12-01 15:30:52 +0100 |
commit | 6dac8e68173e2964ce2f7c757189a2f9e930057c (patch) | |
tree | dcbef7889350f2d4d544aff9d9594b10c7201410 /pkgs/development/interpreters/dhall | |
parent | 86b651f1698318455a720a0eac4ea775203c8a1b (diff) |
Add `buildDhall*Package` support for generating documentation
The `buildDhall{Directory,GitHub}Package` utilities now take an optional `document` argument for generating documentation using `dhall-docs`. The documentation is stored underneath the `./docs` subdirectory of the build product.
Diffstat (limited to 'pkgs/development/interpreters/dhall')
3 files changed, 56 insertions, 30 deletions
diff --git a/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix b/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix index 0c182b25d573a..7fe1b46e3a550 100644 --- a/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix +++ b/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix @@ -14,12 +14,17 @@ lib.makePackageOverridable , src , # The file to import, relative to the root directory file ? "package.dhall" + # Set to `true` to generate documentation for the package + , document ? false }: - buildDhallPackage { - inherit name dependencies source; + buildDhallPackage + ( { inherit name dependencies source; - code = "${src}/${file}"; - } + code = "${src}/${file}"; + + } + // lib.optionalAttrs document { documentationRoot = src; } + ) ) diff --git a/pkgs/development/interpreters/dhall/build-dhall-github-package.nix b/pkgs/development/interpreters/dhall/build-dhall-github-package.nix index bdb958fb8bd7e..0978e47754b90 100644 --- a/pkgs/development/interpreters/dhall/build-dhall-github-package.nix +++ b/pkgs/development/interpreters/dhall/build-dhall-github-package.nix @@ -12,6 +12,8 @@ lib.makePackageOverridable directory ? "" , # The file to import, relative to the above directory file ? "package.dhall" + # Set to `true` to generate documentation for the package + , document ? false # Arguments passed through to `fetchFromGitHub` , owner @@ -22,29 +24,32 @@ lib.makePackageOverridable , ... }@args: - buildDhallPackage { - inherit name dependencies source; - - code = - let - src = fetchFromGitHub ({ - name = "${name}-source"; - - inherit owner repo rev; - } // removeAttrs args [ - "name" - "dependencies" - "source" - "directory" - "file" - "owner" - "repo" - "rev" - ]); - - prefix = lib.optionalString (directory != "") "${directory}/"; - - in - "${src}/${prefix}${file}"; - } + let + src = fetchFromGitHub ({ + name = "${name}-source"; + + inherit owner repo rev; + } // removeAttrs args [ + "name" + "dependencies" + "document" + "source" + "directory" + "file" + "owner" + "repo" + "rev" + ]); + + prefix = lib.optionalString (directory != "") "${directory}/"; + + in + buildDhallPackage + ( { inherit name dependencies source; + + code = "${src}/${prefix}${file}"; + } + // lib.optionalAttrs document + { documentationRoot = "${src}/${prefix}"; } + ) ) diff --git a/pkgs/development/interpreters/dhall/build-dhall-package.nix b/pkgs/development/interpreters/dhall/build-dhall-package.nix index 9303244eb8857..039c50f06937f 100644 --- a/pkgs/development/interpreters/dhall/build-dhall-package.nix +++ b/pkgs/development/interpreters/dhall/build-dhall-package.nix @@ -1,4 +1,4 @@ -{ dhall, haskell, lib, lndir, runCommand, writeText }: +{ dhall, dhall-docs, haskell, lib, lndir, runCommand, writeText }: { name @@ -31,6 +31,12 @@ # space within the Nix store, but if you set the following `source` option to # `true` then the package will also include `source.dhall`. , source ? false + + # Directory to generate documentation for (i.e. as the `--input` option to the + # `dhall-docs` command.) + # + # If `null`, then no documentation is generated. +, documentationRoot ? null }: let @@ -42,8 +48,12 @@ let cache = ".cache"; + data = ".local/share"; + cacheDhall = "${cache}/dhall"; + dataDhall = "${data}/dhall"; + sourceFile = "source.dhall"; in @@ -71,4 +81,10 @@ in echo "missing $SHA_HASH" > $out/binary.dhall ${lib.optionalString (!source) "rm $out/${sourceFile}"} + + ${lib.optionalString (documentationRoot != null) '' + mkdir -p $out/${dataDhall} + + XDG_DATA_HOME=$out/${data} ${dhall-docs}/bin/dhall-docs --input '${documentationRoot}' --output-link $out/docs + ''} '' |