mirror of
https://github.com/NixOS/nix.git
synced 2024-11-22 06:42:28 +00:00
68c81c7375
I think it is bad for these reasons when `tests/` contains a mix of functional and integration tests - Concepts is harder to understand, the documentation makes a good unit vs functional vs integration distinction, but when the integration tests are just two subdirs within `tests/` this is not clear. - Source filtering in the `flake.nix` is more complex. We need to filter out some of the dirs from `tests/`, rather than simply pick the dirs we want and take all of them. This is a good sign the structure of what we are trying to do is not matching the structure of the files. With this change we have a clean: ```shell-session $ git show 'HEAD:tests' tree HEAD:tests functional/ installer/ nixos/ ```
34 lines
904 B
Nix
34 lines
904 B
Nix
with import ./config.nix;
|
|
|
|
# A simple content-addressed derivation.
|
|
# The derivation can be arbitrarily modified by passing a different `seed`,
|
|
# but the output will always be the same
|
|
rec {
|
|
hello = mkDerivation {
|
|
name = "hello";
|
|
buildCommand = ''
|
|
set -x
|
|
echo "Building a CA derivation"
|
|
mkdir -p $out
|
|
echo "Hello World" > $out/hello
|
|
'';
|
|
};
|
|
producingDrv = mkDerivation {
|
|
name = "hello.drv";
|
|
buildCommand = ''
|
|
echo "Copying the derivation"
|
|
cp ${builtins.unsafeDiscardOutputDependency hello.drvPath} $out
|
|
'';
|
|
__contentAddressed = true;
|
|
outputHashMode = "text";
|
|
outputHashAlgo = "sha256";
|
|
};
|
|
wrapper = mkDerivation {
|
|
name = "use-dynamic-drv-in-non-dynamic-drv";
|
|
buildCommand = ''
|
|
echo "Copying the output of the dynamic derivation"
|
|
cp -r ${builtins.outputOf producingDrv.outPath "out"} $out
|
|
'';
|
|
};
|
|
}
|