nixpkgs-suyu/pkgs/development/interpreters/dhall/build-dhall-github-package.nix
Gabriel Gonzalez ef0a42347e
dhall: Use --base-import-url flag for documentation (#128588)
This updates `pkgs.dhallPackages.buildDhallGitHubPackage` to use the
newly added `--base-import-url` `dhall-docs` flag.  This flag is used
by the generated documentation so that paths copied to the clipboard
represent complete URLs that can be imported instead of only the
relative path to the import.
2021-06-29 19:09:29 -07:00

62 lines
1.5 KiB
Nix

{ 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}";
}
)
)