summary refs log tree commit diff
path: root/pkgs/development/dhall-modules
diff options
context:
space:
mode:
authorGabriel Gonzalez <Gabriel439@gmail.com>2020-05-09 19:16:06 -0700
committerProfpatsch <mail@profpatsch.de>2020-06-17 15:57:21 +0200
commit459cf94991754d391f7808bbc306f52653298ada (patch)
tree63793bfff1d73bde5a11205e601a6ecf7f38a1bb /pkgs/development/dhall-modules
parent2ee84ca8e2adb0ef5b5ea52ad38fe0e107893d3e (diff)
downloadnixpkgs-459cf94991754d391f7808bbc306f52653298ada.tar
nixpkgs-459cf94991754d391f7808bbc306f52653298ada.tar.gz
nixpkgs-459cf94991754d391f7808bbc306f52653298ada.tar.bz2
nixpkgs-459cf94991754d391f7808bbc306f52653298ada.tar.lz
nixpkgs-459cf94991754d391f7808bbc306f52653298ada.tar.xz
nixpkgs-459cf94991754d391f7808bbc306f52653298ada.tar.zst
nixpkgs-459cf94991754d391f7808bbc306f52653298ada.zip
Nixpkgs support for `dhall-to-nixpkgs`
The motivation for this change is to enable a new Dhall command-line
utility called `dhall-to-nixpkgs` which converts Dhall packages to
buildable Nix packages.  You can think of `dhall-to-nixpkgs` as the
Dhall analog of `cabal2nix`.

You can find the matching pull request for `dhall-to-nixpkgs` here:

https://github.com/dhall-lang/dhall-haskell/pull/1826

The two main changes required to support `dhall-to-nixpkgs` are:

* Two new `buildDhall{Directory,GitHub}Package` utilities are added

  `dhall-to-nixpkgs` uses these in the generated output

* `pkgs.dhallPackages` now selects a default version for each package
  using the `prefer` utility

  All other versions are still buildable via a `passthru` attribute
Diffstat (limited to 'pkgs/development/dhall-modules')
-rw-r--r--pkgs/development/dhall-modules/Prelude.nix31
-rw-r--r--pkgs/development/dhall-modules/dhall-kubernetes.nix31
-rw-r--r--pkgs/development/dhall-modules/dhall-packages.nix39
3 files changed, 32 insertions, 69 deletions
diff --git a/pkgs/development/dhall-modules/Prelude.nix b/pkgs/development/dhall-modules/Prelude.nix
index c689f7156fb..6af08edf88a 100644
--- a/pkgs/development/dhall-modules/Prelude.nix
+++ b/pkgs/development/dhall-modules/Prelude.nix
@@ -1,26 +1,17 @@
-{ buildDhallPackage, fetchFromGitHub, lib }:
+{ buildDhallGitHubPackage, lib }:
 
 let
   makePrelude =
-    version:
-    lib.makeOverridable
-      ( { rev, sha256, file ? "package.dhall" }:
-          buildDhallPackage {
-            name = "Prelude-${version}";
-
-            code =
-              let
-                src = fetchFromGitHub {
-                  owner = "dhall-lang";
-                  repo  = "dhall-lang";
-
-                  inherit rev sha256;
-                };
-
-              in
-                "${src}/Prelude/${file}";
-          }
-      );
+    version: { rev, sha256 }:
+      buildDhallGitHubPackage {
+        name      = "Prelude-${version}";
+        owner     = "dhall-lang";
+        repo      = "dhall-lang";
+        directory = "Prelude";
+        file      = "package.dhall";
+
+        inherit rev sha256;
+      };
 
 in
   lib.mapAttrs makePrelude {
diff --git a/pkgs/development/dhall-modules/dhall-kubernetes.nix b/pkgs/development/dhall-modules/dhall-kubernetes.nix
index 23a1123eacb..2de89d63ec3 100644
--- a/pkgs/development/dhall-modules/dhall-kubernetes.nix
+++ b/pkgs/development/dhall-modules/dhall-kubernetes.nix
@@ -1,29 +1,16 @@
-{ buildDhallPackage, fetchFromGitHub, lib }:
+{ buildDhallGitHubPackage, lib }:
 
 let
   makeDhallKubernetes =
-    version:
-    lib.makeOverridable
-      ( { rev
-        , sha256
-        , file ? "package.dhall"
-        }:
-          buildDhallPackage {
-            name = "dhall-kubernetes-${version}";
+    version: { rev, sha256 }:
+      buildDhallGitHubPackage {
+        name  = "dhall-kubernetes-${version}";
+        owner = "dhall-lang";
+        repo  = "dhall-kubernetes";
+        file  = "package.dhall";
 
-            code =
-              let
-                src = fetchFromGitHub {
-                  owner = "dhall-lang";
-                  repo  = "dhall-kubernetes";
-
-                  inherit rev sha256;
-                };
-
-              in
-                "${src}/${file}";
-          }
-      );
+        inherit rev sha256;
+      };
 
 in
   lib.mapAttrs makeDhallKubernetes {
diff --git a/pkgs/development/dhall-modules/dhall-packages.nix b/pkgs/development/dhall-modules/dhall-packages.nix
index 34ebbed6869..866b689e38a 100644
--- a/pkgs/development/dhall-modules/dhall-packages.nix
+++ b/pkgs/development/dhall-modules/dhall-packages.nix
@@ -1,47 +1,32 @@
-{ buildDhallPackage, dhall-kubernetes, fetchFromGitHub, lib, Prelude }:
+{ buildDhallGitHubPackage, dhall-kubernetes, lib, Prelude }:
 
 let
   makeDhallPackages =
-    version:
-    lib.makeOverridable
-      ( { rev
-        , sha256
-        , dependencies
-        }:
-          buildDhallPackage {
-            name = "dhall-packages-${version}";
+    version: { rev, sha256, dependencies }:
+      buildDhallGitHubPackage {
+        name  = "dhall-packages-${version}";
+        owner = "EarnestResearch";
+        repo  = "dhall-packages";
+        file  = "package.dhall";
 
-            inherit dependencies;
-
-            code =
-              let
-                src = fetchFromGitHub {
-                  owner = "EarnestResearch";
-                  repo  = "dhall-packages";
-
-                  inherit rev sha256;
-                };
-
-              in
-                "${src}/package.dhall";
-          }
-      );
+        inherit rev sha256 dependencies;
+      };
 
 in
   lib.mapAttrs makeDhallPackages {
     "0.11.1" =
       let
-        k8s_6a47bd = dhall-kubernetes."3.0.0".override {
+        k8s_6a47bd = dhall-kubernetes.override {
           rev    = "6a47bd50c4d3984a13570ea62382a3ad4a9919a4";
           sha256 = "1azqs0x2kia3xw93rfk2mdi8izd7gy9aq6qzbip32gin7dncmfhh";
         };
 
-        k8s_4ad581 = dhall-kubernetes."3.0.0".override {
+        k8s_4ad581 = dhall-kubernetes.override {
           rev    = "4ad58156b7fdbbb6da0543d8b314df899feca077";
           sha256 = "12fm70qbhcainxia388svsay2cfg9iksc6mss0nvhgxhpypgp8r0";
         };
 
-        k8s_fee24c = dhall-kubernetes."3.0.0".override {
+        k8s_fee24c = dhall-kubernetes.override {
           rev    = "fee24c0993ba0b20190e2fdb94e386b7fb67252d";
           sha256 = "11d93z8y0jzrb8dl43gqha9z96nxxqkl7cbxpz8hw8ky9x6ggayk";
         };