nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 fetchgit,
3 fetchzip,
4 lib,
5}:
6
7lib.makeOverridable (
8 {
9 owner,
10 repo,
11 rev,
12 domain ? "git.9front.org",
13 name ? "source",
14 leaveDotGit ? false,
15 deepClone ? false,
16 ... # For hash agility
17 }@args:
18
19 let
20 passthruAttrs = removeAttrs args [
21 "domain"
22 "owner"
23 "repo"
24 "rev"
25 "leaveDotGit"
26 "deepClone"
27 ];
28
29 useFetchGit = leaveDotGit || deepClone;
30 fetcher = if useFetchGit then fetchgit else fetchzip;
31
32 gitRepoUrl = "git://${domain}/${owner}/${repo}";
33
34 fetcherArgs =
35 (
36 if useFetchGit then
37 {
38 # git9 does not support shallow fetches
39 inherit rev leaveDotGit;
40 url = gitRepoUrl;
41 }
42 else
43 {
44 url = "https://${domain}/${owner}/${repo}/${rev}/snap.tar.gz";
45
46 passthru = {
47 inherit gitRepoUrl;
48 };
49 }
50 )
51 // passthruAttrs
52 // {
53 inherit name;
54 };
55 in
56
57 fetcher fetcherArgs // { inherit rev; }
58)