diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-12-05 11:02:44 +0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-12-05 11:02:44 +0100 |
commit | 566afa1e9c804dd4a893960f30325a38c81a4c51 (patch) | |
tree | cfba6b7fd4bab207513e1e4d20ccadf6ec2a49c8 | |
parent | 444b03a36fc038f030241d3d006d13ba2ae12e6b (diff) |
Support xz compression of nixexprs.tar in channels
-rw-r--r-- | corepkgs/unpack-channel.nix | 7 | ||||
-rwxr-xr-x | scripts/nix-channel.in | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/corepkgs/unpack-channel.nix b/corepkgs/unpack-channel.nix index 8cf79f828..5c2a61e66 100644 --- a/corepkgs/unpack-channel.nix +++ b/corepkgs/unpack-channel.nix @@ -6,7 +6,12 @@ let '' mkdir $out cd $out - ${bzip2} -d < $src | ${tar} xf - ${tarFlags} + pat="\.xz\$" + if [[ "$src" =~ $pat ]]; then + ${xz} -d < $src | ${tar} xf - ${tarFlags} + else + ${bzip2} -d < $src | ${tar} xf - ${tarFlags} + fi mv * $out/$channelName if [ -n "$binaryCacheURL" ]; then mkdir $out/binary-caches diff --git a/scripts/nix-channel.in b/scripts/nix-channel.in index 7b292ee8c..4a480ae28 100755 --- a/scripts/nix-channel.in +++ b/scripts/nix-channel.in @@ -122,7 +122,9 @@ sub update { } # Download the channel tarball. - my $fullURL = "$url/nixexprs.tar.bz2"; + my $fullURL = "$url/nixexprs.tar.xz"; + system("$Nix::Config::curl --fail --silent --head '$fullURL' > /dev/null") == 0 or + $fullURL = "$url/nixexprs.tar.bz2"; print STDERR "downloading Nix expressions from `$fullURL'...\n"; my ($hash, $path) = `PRINT_PATH=1 QUIET=1 $Nix::Config::binDir/nix-prefetch-url '$fullURL'`; die "cannot fetch `$fullURL'\n" if $? != 0; |