2020-05-10 03:16:06 +01:00
|
|
|
{ buildDhallPackage, fetchFromGitHub, lib }:
|
|
|
|
|
|
|
|
# This function is used by `dhall-to-nixpkgs` when given a GitHub repository
|
2020-11-01 20:26:33 +00:00
|
|
|
lib.makePackageOverridable
|
2020-05-10 03:16:06 +01:00
|
|
|
( { # 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"
|
2020-11-26 06:02:26 +00:00
|
|
|
# Set to `true` to generate documentation for the package
|
|
|
|
, document ? false
|
2020-05-10 03:16:06 +01:00
|
|
|
|
|
|
|
# Arguments passed through to `fetchFromGitHub`
|
|
|
|
, owner
|
|
|
|
, repo
|
|
|
|
, rev
|
|
|
|
# Extra arguments passed through to `fetchFromGitHub`, such as the hash
|
|
|
|
# or `fetchSubmodules`
|
|
|
|
, ...
|
|
|
|
}@args:
|
|
|
|
|
2020-11-26 06:02:26 +00:00
|
|
|
let
|
2021-01-14 04:59:55 +00:00
|
|
|
versionedName = "${name}-${rev}";
|
|
|
|
|
2020-11-26 06:02:26 +00:00
|
|
|
src = fetchFromGitHub ({
|
2021-01-14 04:59:55 +00:00
|
|
|
name = "${versionedName}-source";
|
2020-11-26 06:02:26 +00:00
|
|
|
|
|
|
|
inherit owner repo rev;
|
|
|
|
} // removeAttrs args [
|
|
|
|
"name"
|
|
|
|
"dependencies"
|
|
|
|
"document"
|
|
|
|
"source"
|
|
|
|
"directory"
|
|
|
|
"file"
|
|
|
|
"owner"
|
|
|
|
"repo"
|
|
|
|
"rev"
|
|
|
|
]);
|
|
|
|
|
|
|
|
prefix = lib.optionalString (directory != "") "${directory}/";
|
|
|
|
|
|
|
|
in
|
|
|
|
buildDhallPackage
|
2021-01-14 04:59:55 +00:00
|
|
|
( { inherit dependencies source;
|
|
|
|
|
|
|
|
name = versionedName;
|
2020-11-26 06:02:26 +00:00
|
|
|
|
|
|
|
code = "${src}/${prefix}${file}";
|
|
|
|
}
|
|
|
|
// lib.optionalAttrs document
|
|
|
|
{ documentationRoot = "${src}/${prefix}"; }
|
|
|
|
)
|
2020-05-10 03:16:06 +01:00
|
|
|
)
|