vuls: init at 0.27.0 (#348530)
[NixPkgs.git] / pkgs / build-support / fetch9front / default.nix
blob677fee1decd77221ab6a2f4c57ce4049c7fff682
1 { fetchgit, fetchzip, lib }:
3 lib.makeOverridable (
4   { owner
5   , repo
6   , rev
7   , domain ? "git.9front.org"
8   , name ? "source"
9   , leaveDotGit ? false
10   , deepClone ? false
11   , ... # For hash agility
12   } @ args:
14   let
15     passthruAttrs = removeAttrs args [ "domain" "owner" "repo" "rev" "leaveDotGit" "deepClone" ];
17     useFetchGit = leaveDotGit || deepClone;
18     fetcher = if useFetchGit then fetchgit else fetchzip;
20     gitRepoUrl = "git://${domain}/${owner}/${repo}";
22     fetcherArgs = (if useFetchGit then {
23       # git9 does not support shallow fetches
24       inherit rev leaveDotGit;
25       url = gitRepoUrl;
26     } else {
27       url = "https://${domain}/${owner}/${repo}/${rev}/snap.tar.gz";
29       passthru = {
30         inherit gitRepoUrl;
31       };
32     }) // passthruAttrs // { inherit name; };
33   in
35   fetcher fetcherArgs // { inherit rev; }