guix/corepkgs/nar.nix

44 lines
898 B
Nix
Raw Normal View History

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