{ 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}"; baseImportUrl = "https://raw.githubusercontent.com/${owner}/${repo}/${rev}${prefix}"; } ) )