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.
63 lines
1.5 KiB
Nix
63 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}";
|
|
}
|
|
)
|
|
)
|