fetchhg: add option to fetch hg subrepos

This commit is contained in:
Robert Scott 2015-04-01 15:02:07 +01:00
parent 066d6146fc
commit 366da9e70f
3 changed files with 12 additions and 4 deletions

View file

@ -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

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.
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;
}

View file

@ -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)"