1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-22 13:41:26 +00:00

Merge pull request #20518 from rasendubi/fetchFromGitHub

fetchFromGitHub: add fetchSubmodules option
This commit is contained in:
Daniel Peebles 2016-11-18 12:29:22 -05:00 committed by GitHub
commit e8bb0a5ef7
2 changed files with 19 additions and 6 deletions

View file

@ -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)

View file

@ -203,12 +203,25 @@ in
fetchFromGitHub = {
owner, repo, rev, name ? "${repo}-${rev}-src",
fetchSubmodules ? false,
... # For hash agility
}@args: 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; };
}@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 = "${baseUrl}/archive/${rev}.tar.gz";
meta.homepage = "${baseUrl}/";
} // passthruAttrs) // { inherit rev; };
fetchFromBitbucket = {
owner, repo, rev, name ? "${repo}-${rev}-src",