From 3a765a7309504957961363960eb03b3e4fb9d680 Mon Sep 17 00:00:00 2001 From: "ambrop7@gmail.com" Date: Sun, 23 Mar 2014 17:19:39 +0100 Subject: fetchgit: Implement option to not check out submodules. --- pkgs/build-support/fetchgit/builder.sh | 4 +++- pkgs/build-support/fetchgit/default.nix | 4 ++-- pkgs/build-support/fetchgit/nix-prefetch-git | 7 ++++++- 3 files changed, 11 insertions(+), 4 deletions(-) (limited to 'pkgs/build-support') diff --git a/pkgs/build-support/fetchgit/builder.sh b/pkgs/build-support/fetchgit/builder.sh index 5c7d92698cc3..9050cce6ee8f 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 b22bdc88f83b..a17daf9a2c57 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 8d0de055c756..6e79f82eae86 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 -- cgit 1.4.1