diff options
author | ambrop7@gmail.com <Ambroz Bizjak> | 2014-03-23 17:19:39 +0100 |
---|---|---|
committer | ambrop7@gmail.com <Ambroz Bizjak> | 2014-03-25 20:03:55 +0100 |
commit | 3a765a7309504957961363960eb03b3e4fb9d680 (patch) | |
tree | 1da6f4fa00939834f37b2df089879cbf69a90b26 /pkgs | |
parent | ae8a8b5deb305e2e8884d9f34a91a7ab28b62b1b (diff) | |
download | nixpkgs-3a765a7309504957961363960eb03b3e4fb9d680.tar nixpkgs-3a765a7309504957961363960eb03b3e4fb9d680.tar.gz nixpkgs-3a765a7309504957961363960eb03b3e4fb9d680.tar.bz2 nixpkgs-3a765a7309504957961363960eb03b3e4fb9d680.tar.lz nixpkgs-3a765a7309504957961363960eb03b3e4fb9d680.tar.xz nixpkgs-3a765a7309504957961363960eb03b3e4fb9d680.tar.zst nixpkgs-3a765a7309504957961363960eb03b3e4fb9d680.zip |
fetchgit: Implement option to not check out submodules.
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/build-support/fetchgit/builder.sh | 4 | ||||
-rw-r--r-- | pkgs/build-support/fetchgit/default.nix | 4 | ||||
-rwxr-xr-x | pkgs/build-support/fetchgit/nix-prefetch-git | 7 |
3 files changed, 11 insertions, 4 deletions
diff --git a/pkgs/build-support/fetchgit/builder.sh b/pkgs/build-support/fetchgit/builder.sh index 5c7d92698cc..9050cce6ee8 100644 --- a/pkgs/build-support/fetchgit/builder.sh +++ b/pkgs/build-support/fetchgit/builder.sh @@ -6,6 +6,8 @@ source $stdenv/setup header "exporting $url (rev $rev) into $out" -$fetcher --builder --url "$url" --out "$out" --rev "$rev" ${leaveDotGit:+--leave-dotGit} +$fetcher --builder --url "$url" --out "$out" --rev "$rev" \ + ${leaveDotGit:+--leave-dotGit} \ + ${fetchSubmodules:+--fetch-submodules} stopNest diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix index b22bdc88f83..a17daf9a2c5 100644 --- a/pkgs/build-support/fetchgit/default.nix +++ b/pkgs/build-support/fetchgit/default.nix @@ -1,5 +1,5 @@ {stdenv, git, cacert}: -{url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? false }: +{url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? false, fetchSubmodules ? true}: /* NOTE: fetchgit has one problem: git fetch only works for refs. @@ -35,7 +35,7 @@ stdenv.mkDerivation { outputHashMode = "recursive"; outputHash = if sha256 == "" then md5 else sha256; - inherit url rev leaveDotGit; + inherit url rev leaveDotGit fetchSubmodules; GIT_SSL_CAINFO = "${cacert}/etc/ca-bundle.crt"; diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git index 8d0de055c75..6e79f82eae8 100755 --- a/pkgs/build-support/fetchgit/nix-prefetch-git +++ b/pkgs/build-support/fetchgit/nix-prefetch-git @@ -6,6 +6,7 @@ expHash= hashType=$NIX_HASH_ALGO deepClone=$NIX_PREFETCH_GIT_DEEP_CLONE leaveDotGit=$NIX_PREFETCH_GIT_LEAVE_DOT_GIT +fetchSubmodules= builder= if test -n "$deepClone"; then @@ -33,6 +34,7 @@ for arg; do --deepClone) deepClone=true;; --no-deepClone) deepClone=false;; --leave-dotGit) leaveDotGit=true;; + --fetch-submodules) fetchSubmodules=true;; --builder) builder=true;; *) argi=$(($argi + 1)) @@ -66,6 +68,7 @@ Options: --deepClone Clone submodules recursively. --no-deepClone Do not clone submodules. --leave-dotGit Keep the .git directories. + --fetch-submodules Fetch submodules. --builder Clone as fetchgit does, but url, rev, and out option are mandatory. " exit 1 @@ -178,7 +181,9 @@ clone(){ ) # Checkout linked sources. - init_submodules; + if test -n "$fetchSubmodules"; then + init_submodules; + fi if [ -z "$builder" -a -f .topdeps ]; then if tg help 2>&1 > /dev/null |