mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 12:29:02 +02:00
fetchFromGitHub: add fetchSubmodules option
This commit extends fetchFromGitHub with ability to fetch GitHub repositories with submodules, so we can use the function consistently with all GitHub repositories. Note it doesn't change the previous behavior.
This commit is contained in:
parent
77847756f3
commit
a80cacd3ec
|
@ -26,7 +26,7 @@ in
|
|||
Cloning branches will make the hash check fail when there is an update.
|
||||
But not all patches we want can be accessed by tags.
|
||||
|
||||
The workaround is getting the last n commits so that it's likly that they
|
||||
The workaround is getting the last n commits so that it's likely that they
|
||||
still contain the hash we want.
|
||||
|
||||
for now : increase depth iteratively (TODO)
|
||||
|
|
|
@ -203,12 +203,25 @@ in
|
|||
|
||||
fetchFromGitHub = {
|
||||
owner, repo, rev, name ? "${repo}-${rev}-src",
|
||||
fetchSubmodules ? false,
|
||||
... # For hash agility
|
||||
}@args: fetchzip ({
|
||||
}@args:
|
||||
let
|
||||
baseUrl = "https://github.com/${owner}/${repo}";
|
||||
passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" ];
|
||||
in if fetchSubmodules then
|
||||
fetchgit ({
|
||||
inherit name rev fetchSubmodules;
|
||||
url = "${baseUrl}.git";
|
||||
} // passthruAttrs)
|
||||
else
|
||||
# We prefer fetchzip in cases we don't need submodules as the hash
|
||||
# is more stable in that case.
|
||||
fetchzip ({
|
||||
inherit name;
|
||||
url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz";
|
||||
meta.homepage = "https://github.com/${owner}/${repo}/";
|
||||
} // removeAttrs args [ "owner" "repo" "rev" ]) // { inherit rev; };
|
||||
url = "${baseUrl}/archive/${rev}.tar.gz";
|
||||
meta.homepage = "${baseUrl}/";
|
||||
} // passthruAttrs) // { inherit rev; };
|
||||
|
||||
fetchFromBitbucket = {
|
||||
owner, repo, rev, name ? "${repo}-${rev}-src",
|
||||
|
|
Loading…
Reference in a new issue