Previously, paths not being deleted by gcDeleteSpecific would result in (a) hardlinks not being cleaned up, and (b) statistics not being reported correctly. By throwing the error later, we fix both of these problems. Change-Id: I8019f3e10d9f22e81ea87bb26b77f04ebc888a19
49 lines
1.1 KiB
Nix
49 lines
1.1 KiB
Nix
{ hashInvalidator ? "" }:
|
|
with import ./config.nix;
|
|
|
|
let
|
|
input0 = mkDerivation {
|
|
name = "dependencies-input-0";
|
|
buildCommand = "mkdir $out; echo foo > $out/bar";
|
|
};
|
|
|
|
input1 = mkDerivation {
|
|
name = "dependencies-input-1";
|
|
buildCommand = "mkdir $out; echo FOO > $out/foo";
|
|
};
|
|
|
|
input2 = mkDerivation {
|
|
name = "dependencies-input-2";
|
|
buildCommand = ''
|
|
mkdir $out
|
|
# Space-filler to test GC stats reporting
|
|
head -c 100k /dev/zero > $out/filler
|
|
echo BAR > $out/bar
|
|
echo ${input0} > $out/input0
|
|
'';
|
|
};
|
|
|
|
fod_input = mkDerivation {
|
|
name = "fod-input";
|
|
buildCommand = ''
|
|
echo ${hashInvalidator}
|
|
echo FOD > $out
|
|
'';
|
|
outputHashMode = "flat";
|
|
outputHashAlgo = "sha256";
|
|
outputHash = "1dq9p0hnm1y75q2x40fws5887bq1r840hzdxak0a9djbwvx0b16d";
|
|
};
|
|
|
|
in
|
|
mkDerivation {
|
|
name = "dependencies-top";
|
|
builder = ./dependencies.builder0.sh + "/FOOBAR/../.";
|
|
input1 = input1 + "/.";
|
|
input2 = "${input2}/.";
|
|
input1_drv = input1;
|
|
input2_drv = input2;
|
|
input0_drv = input0;
|
|
fod_input_drv = fod_input;
|
|
meta.description = "Random test package";
|
|
}
|