nss_latest: 3.107 -> 3.108 (#379643)
[NixPkgs.git] / pkgs / build-support / fetch9front / default.nix
blob1ddc5eba04ec736c78f95590d69e80c602f3c0cc
2   fetchgit,
3   fetchzip,
4   lib,
5 }:
7 lib.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:
19   let
20     passthruAttrs = removeAttrs args [
21       "domain"
22       "owner"
23       "repo"
24       "rev"
25       "leaveDotGit"
26       "deepClone"
27     ];
29     useFetchGit = leaveDotGit || deepClone;
30     fetcher = if useFetchGit then fetchgit else fetchzip;
32     gitRepoUrl = "git://${domain}/${owner}/${repo}";
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";
46             passthru = {
47               inherit gitRepoUrl;
48             };
49           }
50       )
51       // passthruAttrs
52       // {
53         inherit name;
54       };
55   in
57   fetcher fetcherArgs // { inherit rev; }