summary refs log tree commit diff
path: root/pkgs/development/interpreters/dhall/build-dhall-github-package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters/dhall/build-dhall-github-package.nix')
-rw-r--r--pkgs/development/interpreters/dhall/build-dhall-github-package.nix64
1 files changed, 38 insertions, 26 deletions
diff --git a/pkgs/development/interpreters/dhall/build-dhall-github-package.nix b/pkgs/development/interpreters/dhall/build-dhall-github-package.nix
index 9289e9b656d..8f9e4d83551 100644
--- a/pkgs/development/interpreters/dhall/build-dhall-github-package.nix
+++ b/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,39 @@ 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
+      versionedName = "${name}-${rev}";
+
+      src = fetchFromGitHub ({
+        name = "${versionedName}-source";
+
+        inherit owner repo rev;
+      } // removeAttrs args [
+        "name"
+        "dependencies"
+        "document"
+        "source"
+        "directory"
+        "file"
+        "owner"
+        "repo"
+        "rev"
+      ]);
+
+      prefix = lib.optionalString (directory != "") "/${directory}";
+
+    in
+      buildDhallPackage
+        ( { inherit dependencies source;
+
+            name = versionedName;
+
+            code = "${src}${prefix}/${file}";
+          }
+        // lib.optionalAttrs document
+          { documentationRoot = "${src}/${prefix}";
+
+            baseImportUrl = "https://raw.githubusercontent.com/${owner}/${repo}/${rev}${prefix}";
+          }
+        )
   )