35 lines
820 B
Nix
35 lines
820 B
Nix
# Read actual constructor attributes as comparison data. Their values AND
|
|
# dependency contexts remain visible; none is substituted for a build input.
|
|
derivation:
|
|
let
|
|
fields = [
|
|
"name"
|
|
"system"
|
|
"src"
|
|
"stdenv"
|
|
"nativeBuildInputs"
|
|
"buildInputs"
|
|
"propagatedBuildInputs"
|
|
"propagatedNativeBuildInputs"
|
|
"configurePhase"
|
|
"buildPhase"
|
|
"checkPhase"
|
|
"installPhase"
|
|
"doCheck"
|
|
"strictDeps"
|
|
"outputs"
|
|
"__structuredAttrs"
|
|
];
|
|
selected = builtins.intersectAttrs (builtins.listToAttrs (
|
|
map (name: {
|
|
inherit name;
|
|
value = null;
|
|
}) fields
|
|
)) derivation;
|
|
in
|
|
builtins.mapAttrs (_: value: {
|
|
type = builtins.typeOf value;
|
|
value = builtins.unsafeDiscardStringContext (toString value);
|
|
context = builtins.getContext (toString value);
|
|
}) selected
|