3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/development/interpreters/dhall/build-dhall-github-package.nix

60 lines
1.4 KiB
Nix
Raw Normal View History

{ buildDhallPackage, fetchFromGitHub, lib }:
# This function is used by `dhall-to-nixpkgs` when given a GitHub repository
lib.makePackageOverridable
( { # Arguments passed through to `buildDhallPackage`
name
, dependencies ? []
, source ? false
, # The directory containing the Dhall files, if other than the root of the
# repository
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
, repo
, rev
# Extra arguments passed through to `fetchFromGitHub`, such as the hash
# or `fetchSubmodules`
, ...
}@args:
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}"; }
)
)