diff options
| author | (cdep)illabout <cdep.illabout@gmail.com> | 2021-11-10 15:40:40 +0900 |
|---|---|---|
| committer | (cdep)illabout <cdep.illabout@gmail.com> | 2021-11-12 14:36:26 +0900 |
| commit | 8980b58d5718ae06bb9e2b1e3d8fd762c9a9c6e0 (patch) | |
| tree | 3bd93c003c202d73e6a80c143a78b32eeebe92a5 | |
| parent | dhallPackageToNix: function for turning Nixpkgs Dhall package into Nix code (diff) | |
| download | nixpkgs-origin/dhallDirectoryToNix.tar.gz | |
dhallDirectoryToNix: add this utility functionorigin/dhallDirectoryToNix
| -rw-r--r-- | pkgs/build-support/dhall/directory-to-nix.nix | 25 | ||||
| -rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
2 files changed, 27 insertions, 0 deletions
diff --git a/pkgs/build-support/dhall/directory-to-nix.nix b/pkgs/build-support/dhall/directory-to-nix.nix new file mode 100644 index 000000000000..d751e19df3fc --- /dev/null +++ b/pkgs/build-support/dhall/directory-to-nix.nix @@ -0,0 +1,25 @@ +{ dhallPackages, dhallPackageToNix}: + +# `dhallDirectoryToNix is a utility function to take a directory of Dhall files +# and read them in as a Nix expression. +# +# This function is similar to `dhallToNix`, but takes a Nixpkgs Dhall package +# as input instead of raw Dhall code. +# +# Note that this uses "import from derivation" (IFD), meaning that Nix will +# perform a build during the evaluation phase if you use this +# `dhallDirectoryToNix` utility. It is not possible to use +# `dhallDirectoryToNix` in Nixpkgs, since the Nixpkgs Hydra doesn't allow IFD. + +{ src +, # The file to import, relative to the src root directory + file ? "package.dhall" +}@args: + +let + generatedPkg = dhallPackages.generateDhallDirectoryPackage args; + + builtPkg = dhallPackages.callPackage generatedPkg { }; + +in + dhallPackageToNix builtPkg diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9f0b07924166..746e78602460 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -293,6 +293,8 @@ with pkgs; crow-translate = libsForQt5.callPackage ../applications/misc/crow-translate { }; + dhallDirectoryToNix = callPackage ../build-support/dhall/directory-to-nix.nix { }; + dhallPackageToNix = callPackage ../build-support/dhall/package-to-nix.nix { }; dhallToNix = callPackage ../build-support/dhall/to-nix.nix { }; |
