* Refactoring: Get rid of a few subdirectories in corepkgs/, and some
other simplifications. * Use <nix/...> to locate the corepkgs. This allows them to be overriden through $NIX_PATH. * Use bash's pipefail option in the NAR builder so that we don't need to create a temporary file.
This commit is contained in:
parent
93e71e6ab6
commit
48cea0d01e
15 changed files with 52 additions and 84 deletions
30
corepkgs/nar.nix
Normal file
30
corepkgs/nar.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
with import <nix/config.nix>;
|
||||
|
||||
let
|
||||
|
||||
builder = builtins.toFile "nar.sh"
|
||||
''
|
||||
export PATH=${nixBinDir}:${coreutils}
|
||||
|
||||
echo "packing ‘$storePath’..."
|
||||
mkdir $out
|
||||
dst=$out/tmp.nar.bz2
|
||||
|
||||
set -o pipefail
|
||||
nix-store --dump "$storePath" | ${bzip2} > $dst
|
||||
|
||||
nix-hash --flat --type $hashAlgo --base32 $dst > $out/narbz2-hash
|
||||
|
||||
mv $out/tmp.nar.bz2 $out/$(cat $out/narbz2-hash).nar.bz2
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
{ system, storePath, hashAlgo }:
|
||||
|
||||
derivation {
|
||||
name = "nar";
|
||||
builder = shell;
|
||||
args = [ "-e" builder ];
|
||||
inherit system storePath hashAlgo;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue