1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-07-08 02:43:54 +02:00

Allow both bzip2 and xz compression

This commit is contained in:
Eelco Dolstra 2012-07-01 18:46:38 -04:00
parent 000132cbd1
commit f4190c38ba
3 changed files with 67 additions and 29 deletions

View file

@ -6,29 +6,37 @@ let
''
export PATH=${nixBinDir}:${coreutils}
if [ $compressionType = "xz" ]; then
ext=xz
compressor=${xz} -9
else
ext=bz2
compressor=${bzip2}
fi
echo "packing $storePath..."
mkdir $out
dst=$out/tmp.nar.xz
dst=$out/tmp.nar.$ext
set -o pipefail
nix-store --dump "$storePath" | ${xz} -9 > $dst
nix-store --dump "$storePath" | $compressor -9 > $dst
hash=$(nix-hash --flat --type $hashAlgo --base32 $dst)
echo -n $hash > $out/nar-compressed-hash
mv $dst $out/$hash.nar.xz
mv $dst $out/$hash.nar.$ext
'';
in
{ storePath, hashAlgo }:
{ storePath, hashAlgo, compressionType }:
derivation {
name = "nar";
system = builtins.currentSystem;
builder = shell;
args = [ "-e" builder ];
inherit storePath hashAlgo;
inherit storePath hashAlgo compressionType;
# Don't build in a chroot because Nix's dependencies may not be there.
__noChroot = true;