Merge pull request #7235 from risicle/fetchhgsubrepo

fetchhg: add option to fetch hg subrepos
This commit is contained in:
Edward Tjörnhammar 2015-05-04 18:20:32 +02:00
commit 655eed7a93
3 changed files with 11 additions and 3 deletions

View File

@ -3,7 +3,7 @@ header "getting $url${rev:+ ($rev)} into $out"
hg clone --insecure "$url" hg-clone 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 rm -f $out/.hg_archival.txt
stopNest stopNest

View File

@ -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. # TODO: statically check if mercurial as the https support if the url starts woth https.
stdenv.mkDerivation { stdenv.mkDerivation {
@ -13,6 +13,8 @@ stdenv.mkDerivation {
# Nix <= 0.7 compatibility. # Nix <= 0.7 compatibility.
id = md5; id = md5;
subrepoClause = if fetchSubrepos then "S" else "";
outputHashAlgo = if md5 != null then "md5" else "sha256"; outputHashAlgo = if md5 != null then "md5" else "sha256";
outputHashMode = "recursive"; outputHashMode = "recursive";
outputHash = if md5 != null then md5 else sha256; outputHash = if md5 != null then md5 else sha256;

View File

@ -17,6 +17,12 @@ if test -z "$url"; then
exit 1 exit 1
fi fi
if test "$fetchSubrepos" == 1; then
subrepoClause=S
else
subrepoClause=
fi
test -n "$rev" || rev="tip" test -n "$rev" || rev="tip"
@ -47,7 +53,7 @@ if test -z "$finalPath"; then
else else
tmpClone=$url tmpClone=$url
fi 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 rm -f $tmpArchive/.hg_archival.txt
echo "hg revision is $(cd $tmpClone; hg id -r "$rev" -i)" echo "hg revision is $(cd $tmpClone; hg id -r "$rev" -i)"