1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2024-09-19 23:03:53 -04:00
nix/corepkgs/nar.nix

44 lines
899 B
Nix
Raw Normal View History

with import <nix/config.nix>;
let
builder = builtins.toFile "nar.sh"
''
export PATH=${nixBinDir}:${coreutils}
2012-07-01 18:46:38 -04:00
if [ $compressionType = "xz" ]; then
ext=xz
2012-07-01 21:57:25 -04:00
compressor="${xz} -9"
2012-07-01 18:46:38 -04:00
else
ext=bz2
2012-07-01 21:57:25 -04:00
compressor="${bzip2}"
2012-07-01 18:46:38 -04:00
fi
echo "packing $storePath..."
mkdir $out
2012-07-01 18:46:38 -04:00
dst=$out/tmp.nar.$ext
set -o pipefail
2012-07-01 21:57:25 -04:00
nix-store --dump "$storePath" | $compressor > $dst
hash=$(nix-hash --flat --type $hashAlgo --base32 $dst)
echo -n $hash > $out/nar-compressed-hash
2012-07-01 18:46:38 -04:00
mv $dst $out/$hash.nar.$ext
'';
in
2012-07-01 18:46:38 -04:00
{ storePath, hashAlgo, compressionType }:
derivation {
name = "nar";
2012-04-14 12:48:11 -04:00
system = builtins.currentSystem;
builder = shell;
args = [ "-e" builder ];
2012-07-01 18:46:38 -04:00
inherit storePath hashAlgo compressionType;
# Don't build in a chroot because Nix's dependencies may not be there.
__noChroot = true;
}