summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorRobert Scott <code@humanleg.org.uk>2015-04-01 15:02:07 +0100
committerRobert Scott <code@humanleg.org.uk>2015-05-04 16:18:26 +0100
commit366da9e70f46bd42a62bdcd9a0aa7b891c54760d (patch)
treed5c854f1a583aa12ca98b3f0b5793748b7fe2b1f /pkgs
parent066d6146fc4d84848095b2633d4a82330c271121 (diff)
downloadnixpkgs-366da9e70f46bd42a62bdcd9a0aa7b891c54760d.tar
nixpkgs-366da9e70f46bd42a62bdcd9a0aa7b891c54760d.tar.gz
nixpkgs-366da9e70f46bd42a62bdcd9a0aa7b891c54760d.tar.bz2
nixpkgs-366da9e70f46bd42a62bdcd9a0aa7b891c54760d.tar.lz
nixpkgs-366da9e70f46bd42a62bdcd9a0aa7b891c54760d.tar.xz
nixpkgs-366da9e70f46bd42a62bdcd9a0aa7b891c54760d.tar.zst
nixpkgs-366da9e70f46bd42a62bdcd9a0aa7b891c54760d.zip
fetchhg: add option to fetch hg subrepos
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/build-support/fetchhg/builder.sh2
-rw-r--r--pkgs/build-support/fetchhg/default.nix6
-rwxr-xr-xpkgs/build-support/fetchhg/nix-prefetch-hg8
3 files changed, 12 insertions, 4 deletions
diff --git a/pkgs/build-support/fetchhg/builder.sh b/pkgs/build-support/fetchhg/builder.sh
index 0b51ef79b23..847f18fa597 100644
--- a/pkgs/build-support/fetchhg/builder.sh
+++ b/pkgs/build-support/fetchhg/builder.sh
@@ -3,7 +3,7 @@ header "getting $url${rev:+ ($rev)} into $out"
 
 hg clone --insecure "$url" hg-clone
 
-hg archive -q -y ${rev:+-r "$rev"} --cwd hg-clone $out
+hg archive -q$subrepoClause -y ${rev:+-r "$rev"} --cwd hg-clone $out
 rm -f $out/.hg_archival.txt
 
 stopNest
diff --git a/pkgs/build-support/fetchhg/default.nix b/pkgs/build-support/fetchhg/default.nix
index 4675cbe6ec8..afff9d36883 100644
--- a/pkgs/build-support/fetchhg/default.nix
+++ b/pkgs/build-support/fetchhg/default.nix
@@ -1,4 +1,4 @@
-{stdenv, mercurial, nix}: {name ? null, url, rev ? null, md5 ? null, sha256 ? null}:
+{stdenv, mercurial, nix}: {name ? null, url, rev ? null, md5 ? null, sha256 ? null, fetchSubrepos ? false}:
 
 # TODO: statically check if mercurial as the https support if the url starts woth https.
 stdenv.mkDerivation {
@@ -9,10 +9,12 @@ stdenv.mkDerivation {
   # Nix <= 0.7 compatibility.
   id = md5;
 
+  subrepoClause = if fetchSubrepos then "S" else "";
+
   outputHashAlgo = if md5 != null then "md5" else "sha256";
   outputHashMode = "recursive";
   outputHash = if md5 != null then md5 else sha256;
-  
+
   inherit url rev;
   preferLocalBuild = true;
 }
diff --git a/pkgs/build-support/fetchhg/nix-prefetch-hg b/pkgs/build-support/fetchhg/nix-prefetch-hg
index a8916176f8a..a877b217125 100755
--- a/pkgs/build-support/fetchhg/nix-prefetch-hg
+++ b/pkgs/build-support/fetchhg/nix-prefetch-hg
@@ -17,6 +17,12 @@ if test -z "$url"; then
     exit 1
 fi
 
+if test "$fetchSubrepos" == 1; then
+    subrepoClause=S
+else
+    subrepoClause=
+fi
+
 test -n "$rev" || rev="tip"
 
 
@@ -47,7 +53,7 @@ if test -z "$finalPath"; then
     else
       tmpClone=$url
     fi
-    hg archive -q -y -r "$rev" --cwd $tmpClone $tmpArchive
+    hg archive -q$subrepoClause -y -r "$rev" --cwd $tmpClone $tmpArchive
     rm -f $tmpArchive/.hg_archival.txt
 
     echo "hg revision is $(cd $tmpClone; hg id -r "$rev" -i)"