aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-github-package.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-package.nix18
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
+ ''}
''