diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall')
3 files changed, 58 insertions, 32 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix b/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix index b4401a85d141..7fe1b46e3a55 100644 --- a/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix +++ b/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix @@ -5,7 +5,7 @@ # the `file` # # This function is used by `dhall-to-nixpkgs` when given a directory -lib.makeOverridable +lib.makePackageOverridable ( { # Arguments passed through to `buildDhallPackage` name , dependencies ? [] @@ -14,12 +14,17 @@ lib.makeOverridable , 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/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-github-package.nix b/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-github-package.nix index 9289e9b656d3..0978e47754b9 100644 --- a/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-github-package.nix +++ b/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-github-package.nix @@ -1,7 +1,7 @@ { buildDhallPackage, fetchFromGitHub, lib }: # This function is used by `dhall-to-nixpkgs` when given a GitHub repository -lib.makeOverridable +lib.makePackageOverridable ( { # Arguments passed through to `buildDhallPackage` name , dependencies ? [] @@ -12,6 +12,8 @@ lib.makeOverridable 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.makeOverridable , ... }@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/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-package.nix b/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-package.nix index 9303244eb885..039c50f06937 100644 --- a/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-package.nix +++ b/infra/libkookie/nixpkgs/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 + ''} '' |